[{"data":1,"prerenderedAt":2146},["ShallowReactive",2],{"tag-data-veille tech":3},[4,313,635,866,1336,1665],{"id":5,"title":6,"alt":7,"authors":8,"body":30,"date":286,"description":287,"extension":288,"image":289,"meta":290,"navigation":291,"ogImage":289,"path":292,"published":291,"reviewers":293,"seo":305,"stem":306,"tags":307,"__hash__":312},"blogs\u002Fblogs\u002F2024-08-27-retour-sur-le-devfest\u002Findex.md","Retour sur le DevFest","Les 6 et 7 Juin dernier s'est déroulée la 7ᵉ édition du DevFest Lille. Toute l'équipe HoppR était présente à l'événement. Retour sur cette journée riche en découvertes techniques et humaines",[9,15,20,25],{"id":10,"name":11,"image":12,"linkedin":13,"x":14},"e8163b24-7e01-41c5-adbf-0dc655f929d0","Nicolas Zago",".\u002Fassets\u002Fauthor-nicolas-zago.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fnicolaszago\u002F",null,{"id":16,"name":17,"image":18,"linkedin":19,"x":14},"70a8663a-742d-4937-a6d4-5cef079b12c8","Théo Lanord",".\u002Fassets\u002Fauthor-tho-lanord.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fth%C3%A9o-lanord\u002F",{"id":21,"name":22,"image":23,"linkedin":24,"x":14},"44e68e06-deec-41b6-87a4-833fec8c9953","Sébastien Jaupart",".\u002Fassets\u002Fauthor-sbastien-jaupart.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fsebastien-jaupart\u002F",{"id":26,"name":27,"image":28,"linkedin":29,"x":14},"f09c2e62-135b-40c0-a141-b239e8e1e761","Elisa Degobert",".\u002Fassets\u002Fauthor-elisa-degobert.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdegobert\u002F",{"type":31,"value":32,"toc":276},"minimark",[33,38,42,49,52,55,60,63,76,82,88,93,96,100,105,108,111,114,117,120,123,126,129,132,135,146,150,153,156,159,162,165,168,171,174,188,191,212,215,224,228,231,234,237,240,243,246,249,258,262,265,273],[34,35,37],"h2",{"id":36},"devfest-lille-saison-7","DevFest Lille, saison 7 !",[39,40,41],"p",{},"Les 6 et 7 Juin dernier s'est déroulée la 7ᵉ édition du DevFest Lille au Grand Palais. Pour la première fois sur un format de 2 jours avec une soirée organisée à Grand Scène (on y reviendra plus tard). \nUne édition plus riche, plus dense avec 56 conférences et Talks, 1500 participants et une quarantaine de sponsors dont HoppR.",[39,43,44],{},[45,46],"img",{"alt":47,"src":48},"Photo de l’équipe HoppR","\u002Fcontent-assets\u002F2024-08-27-retour-sur-le-devfest\u002Fassets\u002Fimg1.webp",[39,50,51],{},"Toute l'équipe HoppR était présente à l'événement. Retour sur cette journée riche en découvertes techniques et humaines d'Emma, Elisa, Edouard, Théo, Nicolas G & Z, Anthony, Guillaume !",[39,53,54],{},"D’ailleurs, certains en ont profité pour compiler leur retour d’expérience et prendre des notes sur les talks qui les ont interpellés !\nAlors si vous n’avez pas pu y participer ou tout voir, la suite devrait vous intéresser !",[56,57,59],"h3",{"id":58},"petit-détour-sur-lengagement-du-devfest-lille","Petit détour sur l'engagement du DevFest Lille",[39,61,62],{},"Depuis quelques années, l'équipe du DevFest a fait un gros effort pour réduire l'impact de la conférence, notamment sur les déchets. Avec pour mot d'ordre, supprimer, réutiliser ou recycler et plusieurs initiatives déjà en place :",[64,65,66,70,73],"ul",{},[67,68,69],"li",{},"Fin des goodies (souvent inutiles) et thématique pour réutiliser les kakemonos et stand des années précédentes (organisation et sponsors).",[67,71,72],{},"Partenariat avec la Consignerie pour proposer aux participants des boissons dans des bouteilles en verre et des gobelets consignés.",[67,74,75],{},"Repas zéro déchet.",[39,77,78],{},[45,79],{"alt":80,"src":81},"Consigne boissons du Devfest","\u002Fcontent-assets\u002F2024-08-27-retour-sur-le-devfest\u002Fassets\u002Fimg2.webp",[39,83,84],{},[45,85],{"alt":86,"src":87},"Stand déjeuner avec lunch bag du Devfest","\u002Fcontent-assets\u002F2024-08-27-retour-sur-le-devfest\u002Fassets\u002Fimg3.webp",[39,89,90],{},[45,91],{"alt":86,"src":92},"\u002Fcontent-assets\u002F2024-08-27-retour-sur-le-devfest\u002Fassets\u002Fimg4.webp",[39,94,95],{},"À noter aussi leur travail sur l'accessibilité avec le sous-titrage réalisé par le Messageur, pour que les conférences puissent être accessible à tous les publics en situation de handicap 👏",[56,97,99],{"id":98},"retour-sur-les-conférences","Retour sur les conférences",[101,102,104],"h4",{"id":103},"survivre-dans-la-js-jungle-des-outils-de-tests-lise-quesnel-par-théo-lanord","Survivre dans la JS-jungle des outils de tests  (Lise Quesnel) par  Théo Lanord",[39,106,107],{},"Je tiens à faire un retour sur la conférence de Lise QUESNEL pour la remercier de m'avoir aider à voir plus clair dans la JS-jungle des outils de tests !",[39,109,110],{},"Avant tout, est-ce que tester, c'est douter ? Et oui, pourquoi tester ?",[39,112,113],{},"Tester manuellement est une activité chronophage avec des résultats non répétables. La force des tests automatisés est leur rapidité et leur répétabilité.\nCes deux qualités diminuent les boucles de feedback que soit en local, en pipeline de CI\u002FCD ou même en recette.",[39,115,116],{},"En quoi réduire la boucle de feedback est intéressant ?",[39,118,119],{},"Plus l'erreur est détectée tard dans la chaîne de valeur, plus elle sera coûteuse à réparer (Localisation, recontextualisation, etc).\nAssocié à de petites incrémentations, tester permet de délivrer de la valeur plus rapidement tout en augmentant la qualité.\nCe qui me tient à cœur, c'est d'augmenter la confiance entre les différentes parties prenantes (développeurs, PO, QA, etc) pour, à terme, diminuer la pression au quotidien.",[39,121,122],{},"Choisir ses outils en fonction du contexte",[39,124,125],{},"De nombreuses typologies d'outils existent (lanceurs, structurateurs, utilitaires, mocks, etc). Certains outils implémenteront tout ou partie de ces typologies.\nLe choix des outils varie en fonction de votre besoin et contexte.\nDans de nombreux cas, ils vous donneront des modèles de test sur lesquels poser vos premiers tests. Il est important de votre côté d'avoir un nommage de test explicite qui pourra déboucher vers un langage commun compréhensible par les développeurs et le métier.",[39,127,128],{},"Classifier les tests : Equilibre entre coût, rapidité et confiance",[39,130,131],{},"Vous trouverez dans la JS-Jungle de nombreux noms de tests (unitaire, intégration, bout en bout, acceptance, composants, contracts, etc). Je ne peux que vous conseiller d'en discuter avec vos collègues pour vous approprier ces notions au sein de votre équipe.",[39,133,134],{},"La question final sera donc lesquels utiliser et en quelle proportion ?",[39,136,137,138,145],{},"Si j'ai touché votre curiosité, n'hésitez à regarder mon ",[139,140,144],"a",{"href":141,"rel":142},"https:\u002F\u002Fblog.hoppr.tech\u002Fretour_%22survivre_dans_la_JS-jungle_des_outils_de_tests%22_de_lise_quesnel_au_devfest_2024",[143],"nofollow","retour plus complet sur cette même conférence",".\nEncore un grand merci et fécilitations pour la qualité de rédaction (métaphores, images, etc) et de narration de sa conférence !",[101,147,149],{"id":148},"de-lexclusion-à-linclusion-laccessibilité-numérique-pour-tous-et-toutes-emmanuelle-aboaf-par-elisa-degobert","De l'exclusion à l'inclusion : l'accessibilité numérique pour tous et toutes (Emmanuelle Aboaf) par Elisa Degobert",[39,151,152],{},"En France, 1 personne sur 6 est atteinte d’un handicap et il est la plupart du temps invisible. Pourtant, la majorité des sites web ne sont PAS accessibles.",[39,154,155],{},"Au-delà de l'enjeu moral de l'inclusion, ne pas rendre son site accessible, c'est réduire sa cible d'utilisateurs potentiels.",[39,157,158],{},"L'accessibilité nous profite à tous",[39,160,161],{},"On peut penser que les problèmes d'accessibilité ne nous touchent pas mais tout le monde bénéficie au quotidien d'inventions pensées pour des personnes atteintes de handicap: les SMS, la télécommande ou encore les livres audio en sont des exemples.",[39,163,164],{},"S'il s'agit d'une problématique permanente pour de nombreuses personnes, nous subissons tous à un moment de notre vie ce manque d’accessibilité, que ce soit de manière permanente, temporaire ou situationnelle.",[39,166,167],{},"En effet un rhume peut affecter notre capacité à parler, un bras cassé à utiliser nos mains (handicaps temporaires) ou des situations peuvent altérer nos capacités: lorsque nous sommes dans des endroits bruyants notre ouïe est impactée, lorsque l'on doit garder un bébé à bras tout en naviguant sur l'ordinateur notre motricité est impactée, etc.",[39,169,170],{},"Les erreurs que l'on fait tous et toutes…",[39,172,173],{},"La majorité des erreurs relèvent d'un usage imparfait du langage HTML :",[64,175,176,179,182,185],{},[67,177,178],{},"textes alternatifs manquants (alt dans les images et les boutons contenant qu'une image),",[67,180,181],{},"étiquettes manquantes dans les formulaires (un label doit avoir l'attribut for défini avec le même nom que l'attribut id de l'input correspondant),",[67,183,184],{},"liens vides (les urls ne suffisent pas toujours à savoir quel lien correspond à quoi, utilisez l'attribut title)",[67,186,187],{},"langue manquante du site (l'attribut lang dans la balise html définit la langue du site).\nPar exemple, en définissant la langue de votre site, les lecteurs d'écran vont savoir quel accent utiliser\n(pour ne pas lire du texte français avec un accent anglais) et votre navigateur évitera de faire des traductions surprenantes\n(comme traduire le prénom Jimmy par pied-de-biche !).",[39,189,190],{},"Comment savoir si votre site est accessible ?",[39,192,193,194,199,200,205,206,211],{},"👉 Vous pouvez retrouver plein de ressources sur le sujet de l'accessibilité sur le ",[139,195,198],{"href":196,"rel":197},"https:\u002F\u002Fwww.a11yproject.com\u002F",[143],"projet a11y","\net la liste des règles d'accessibilité sur ",[139,201,204],{"href":202,"rel":203},"https:\u002F\u002Fwcag.com\u002F",[143],"WCAG",", avec des exemples concrets.\n",[139,207,210],{"href":208,"rel":209},"https:\u002F\u002Fdeveloper.chrome.com\u002Fdocs\u002Flighthouse\u002Foverview",[143],"Lighthouse"," peut aussi vous aider à auditer l'accessibilité de votre site.",[39,213,214],{},"L'important est de sensibiliser à l'accessibilité autour de soi mais il est difficile de savoir si notre site est accessible.\navant de l'avoir confronté aux utilisateurs concernés.\nComme l'a conclu E. Aboaf, l'important est d'inclure des personnes handicapées dans les process : \"Nothing with us without us\" !",[39,216,217,218,223],{},"Je vous encourage vivement à aller voir le replay de son talk 🎤 pour en savoir plus et d'explorer ",[139,219,222],{"href":220,"rel":221},"https:\u002F\u002Fbento.me\u002Feaboaf",[143],"son site"," pour consulter ses articles sur le sujet.",[101,225,227],{"id":226},"maîtrisez-la-hype-passion-versus-raison-william-leemans-par-sébastien-jaupart","Maîtrisez la Hype : Passion versus Raison (William Leemans) par Sébastien Jaupart",[39,229,230],{},"La passion nous pousse parfois à tester les nouveautés de notre secteur. Parfois un peu trop...",[39,232,233],{},"S'exercer sur de nouvelles technologies contribue grandement à l'apprentissage et développent notre capacité à nous adapter. Néanmoins, les contraintes temporelles et financières d'un projet peuvent rapidement nous rattraper. Adopter une technologie trop tôt (par \"effet de mode\") ou s'entêter sur des technologies inadaptées à nos besoins peut avoir des effets néfastes pour nos projets.",[39,235,236],{},"William Leemans nous alertent face au \"chant des sirènes de la Hype\" et nous proposent un ensemble de bonnes pratiques, astuces et concepts pour s'y prémunir et faire les bons choix.",[39,238,239],{},"La notion de spike (que j'avoue avoir un peu oublié avec le temps) nous impose de timeboxer les essais d'une technologie pour, in fine, documenter et partager les découvertes et résultats obtenus et juger de la pertinence de son usage sur le projet.",[39,241,242],{},"Les choix éclairés d'une personne ou d'une équipe ne le sont pas toujours par d'autres. Généralement pris sur la base d'un contexte, ils peuvent être tracés par le biais d'un ADR (Architecture Decision Record), document retraçant un choix (architectural, de technologie, etc) incluant le contexte, les raisons de ce choix et ses potentielles alternatives. Ils encouragent la réflexion critique, améliorent la communication au sein des équipes et facilitent l'apprentissage continu. Très utile également pour onboarder de nouveaux collaborateurs sur un projet.",[39,244,245],{},"Quels que soient nos choix, les intérêts du projet doivent primer. Pour éviter de choisir un framework inadapté à nos contraintes, il est impératif d'analyser les besoins de nos projets. Pour cela, il est nécessaire de se documenter un maximum, s'imprégner de la philosophie de l'outil et appliquer directement les bonnes pratiques préconisées par la documentation officielle. La sobriété est de mise. Plus la stack est simple, moins il y aura de maintenance.",[39,247,248],{},"Bref, un équilibre à trouver entre innovation et stabilité.",[39,250,251,252,257],{},"Le ",[139,253,256],{"href":254,"rel":255},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=TPhRprV2L24",[143],"replay de la conférence"," est disponible sur Youtube.",[56,259,261],{"id":260},"rattrapage","Rattrapage",[39,263,264],{},"Avec 3 salles et plus d'une cinquantaine de sujets, il est impossible de suivre tous les sujets et c'est parfois difficile de faire son choix.",[39,266,267,268],{},"No stress, l'équipe a tout prévu et des replays sont disponibles sur la ",[139,269,272],{"href":270,"rel":271},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=eDCmfZUmsUA&list=PLuZ_sYdawLiXf92Uq5iE5LlYKrOv1IUvx&pp=iAQB",[143],"chaine Youtube du GDG France",[39,274,275],{},"Allez on se voit l’année prochaine 😄",{"title":277,"searchDepth":278,"depth":278,"links":279},"",2,[280],{"id":36,"depth":278,"text":37,"children":281},[282,284,285],{"id":58,"depth":283,"text":59},3,{"id":98,"depth":283,"text":99},{"id":260,"depth":283,"text":261},"2024-08-27T10:22:46.143Z","Les 6 et 7 Juin dernier s'est déroulée la 7ᵉ édition du DevFest Lille au Grand Palais. Pour la première fois sur un format de 2 jours avec une soirée organisée à Grand Scène (on y reviendra plus tard","md",".\u002Fassets\u002Fcover-image.webp",{},true,"\u002Fblogs\u002F2024-08-27-retour-sur-le-devfest",[294,300],{"id":295,"name":296,"image":297,"linkedin":298,"x":299},"838dec96-f9fc-404f-a302-07719225d785","Maxime Deroullers","https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc69d0b59-558d-4e48-879f-bea3fec1fdef\u002FLinkedin_Profile.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20240827%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240827T102245Z&X-Amz-Expires=3600&X-Amz-Signature=11e2bdc81f73ae453331fd5d334bb1e97c35bc5f075ccbf072c6d349e83108d4&X-Amz-SignedHeaders=host&x-id=GetObject","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmaxime-deroullers-1b5791137\u002F","https:\u002F\u002Fx.com\u002Fmderoullers",{"id":301,"name":302,"image":303,"linkedin":304,"x":14},"0bb914a6-f882-4951-bee6-53e8e8abb807","Emmanuelle Gouvart","https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc88f5dfa-16db-4e6f-acf1-34dd80ee8766\u002Femma_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20240827%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240827T102244Z&X-Amz-Expires=3600&X-Amz-Signature=15fc0a4d1e4645500844a19498b80c1d868a04913c404520471b3a6a00be86a0&X-Amz-SignedHeaders=host&x-id=GetObject","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Femmanuellegouvart-182b6ab2\u002F",{"title":6,"description":287},"blogs\u002F2024-08-27-retour-sur-le-devfest\u002Findex",[308,309,310,311],"veille tech","événement","devfest","others","NHhS1rnkpsYM4lLGQTZWyP69bnNmRzUkilh5QGSTdTs",{"id":314,"title":315,"alt":316,"authors":317,"body":319,"date":616,"description":617,"extension":288,"image":289,"meta":618,"navigation":291,"ogImage":289,"path":619,"published":291,"reviewers":620,"seo":628,"stem":629,"tags":630,"__hash__":634},"blogs\u002Fblogs\u002F2024-10-11-retour-survivre-dans-la-js-jungle-des-outils-de-tests-de-lise-quesnel-au-devfest-2024\u002Findex.md","Retour \"Survivre dans la JS-jungle des outils de tests\" de Lise QUESNEL au Devfest 2024","Conférence de Lise QUESNEL au DevFest 2024",[318],{"id":16,"name":17,"image":18,"linkedin":19,"x":14},{"type":31,"value":320,"toc":602},[321,325,334,337,341,344,347,351,354,358,361,369,373,376,397,404,408,411,418,422,425,432,436,439,442,465,469,472,504,508,511,514,517,564,568,571,574,583,587,590,593],[56,322,324],{"id":323},"introduction","Introduction",[39,326,327,328,333],{},"Cet article fait suite au ",[139,329,332],{"href":330,"rel":331},"https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2024-08-27-retour-sur-le-devfest",[143],"retour de HoppR sur le DevFest 2024"," et se concentre sur la conférence de Lise QUESNEL qui aborde les outils de tests JavaScript.",[39,335,336],{},"Pour être concis, je vous résume les points qui m'ont le plus intéressés et ne reprendrai pas toutes les métaphores utilisées dans sa conférence.\nBref ! Re-déroulons le chemin de JS-Jungle ensemble !",[56,338,340],{"id":339},"tester-cest-douter","Tester, c'est douter ?",[39,342,343],{},"Avant de rentrer véritablement dans la JS-Jungle, répondons au pourquoi ? Et oui, pourquoi tester ?\nTester manuellement est une activité chronophage avec des résultats non répétables. Les forces des tests automatisés sont leur rapidité et leur répétabilité.\nCes deux qualités diminuent la longueur des boucles de feedback que ce soit en local, en pipeline de CI\u002FCD ou même en recette.",[39,345,346],{},"Et en quoi réduire la longueur des boucles de feedback est intéressant ?\nPlus l'erreur est détectée tard dans la chaîne de valeur, plus elle sera coûteuse à réparer (Localisation, recontextualisation, etc).\nAssocié à de petites incrémentations, tester permet de délivrer de la valeur plus rapidement toute en augmentant la qualité.\nDe mon point de vue, il est aussi l'occasion d'augmenter la confiance entre les différentes parties prenantes (développeurs, PO, QA, etc) pour, à terme, diminuer la pression au quotidien.",[56,348,350],{"id":349},"les-typologies-doutils-de-test","Les typologies d'outils de test",[39,352,353],{},"Il est nécessaire de comprendre les différentes typologies car elles ne doivent pas être utilisées toutes en même temps. Chaque contexte a son besoin.",[56,355,357],{"id":356},"les-lanceurs-test-runner","Les lanceurs (Test runner)",[39,359,360],{},"Leur but est d'exécuter les tests et d'exporter leurs résultats.",[39,362,363,364],{},"Exemple: ",[139,365,368],{"href":366,"rel":367},"https:\u002F\u002Fkarma-runner.github.io\u002Flatest\u002Findex.html",[143],"Karma",[56,370,372],{"id":371},"les-structurateurs","Les structurateurs",[39,374,375],{},"Leur but est de structurer l'écriture des tests pour facilité leur lisibilité, écriture et maintenance.",[39,377,378,379,384,385,390,391,396],{},"Les deux syntaxes, aussi appelées modèles de tests ou patterns, les plus connues sont AAA (",[139,380,383],{"href":381,"rel":382},"https:\u002F\u002Fwiki.c2.com\u002F?ArrangeActAssert=",[143],"Arrange Act Assert",") et Gerkhin (",[139,386,389],{"href":387,"rel":388},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGiven-When-Then",[143],"Given When Then",").\nToutes les deux expriment un contexte, une action puis des conséquences. Gerkhin se distingue par son approche ",[139,392,395],{"href":393,"rel":394},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FProgrammation_pilot%C3%A9e_par_le_comportement",[143],"comportementale"," des sujets métiers.\nCela permet notamment d'obtenir un nommage\u002Flangage commun compréhensible par les développeurs et le métier.",[39,398,363,399],{},[139,400,403],{"href":401,"rel":402},"https:\u002F\u002Fgithub.com\u002Fcucumber\u002Fcucumber-js",[143],"Cucumber",[56,405,407],{"id":406},"les-utilitaires","Les utilitaires",[39,409,410],{},"Leur but est de vérifier les attendus et de lever des exceptions claires. Cette notion est appelé \"Assertion\".",[39,412,363,413],{},[139,414,417],{"href":415,"rel":416},"https:\u002F\u002Fwww.chaijs.com\u002F",[143],"Chai",[56,419,421],{"id":420},"les-spies-stubs-et-mocks","Les spies, stubs et mocks",[39,423,424],{},"Leur but est d'isoler la partie du code testée par la simulation du fonctionnement de ces dépendances ou encore l'analyse à l'appel de ces dépendances.",[39,426,363,427],{},[139,428,431],{"href":429,"rel":430},"https:\u002F\u002Fsinonjs.org\u002F",[143],"Sinon",[56,433,435],{"id":434},"les-multi-typologies","Les multi-typologies",[39,437,438],{},"Si vous ne vous sentez pas d'avoir trop de dépendances dans votre projet, il existe aussi des outils couvrants toutes ces typologies :",[39,440,441],{},"Exemples:",[64,443,444,451,458],{},[67,445,446],{},[139,447,450],{"href":448,"rel":449},"https:\u002F\u002Fjestjs.io\u002Ffr\u002F",[143],"Jest",[67,452,453],{},[139,454,457],{"href":455,"rel":456},"https:\u002F\u002Fvitejs.dev\u002F",[143],"Vite",[67,459,460],{},[139,461,464],{"href":462,"rel":463},"https:\u002F\u002Fjasmine.github.io\u002F",[143],"Jasmine",[56,466,468],{"id":467},"les-contrôleurs-de-navigateurs","Les contrôleurs de navigateurs",[39,470,471],{},"La typologie des contrôleurs de navigateurs est à part dans le sens où leur but est de simuler un comportement utilisateur au plus proche du navigateur.\nIl y a 3 manières de contrôler un navigateur :",[64,473,474,482,490],{},[67,475,476,477],{},"Via ces drivers : ",[139,478,481],{"href":479,"rel":480},"https:\u002F\u002Fwww.selenium.dev\u002Fselenium\u002Fdocs\u002Fapi\u002Fjavascript\u002Findex.html",[143],"Selenium",[67,483,484,485],{},"Via script JS : ",[139,486,489],{"href":487,"rel":488},"https:\u002F\u002Fwww.cypress.io\u002F",[143],"Cypress",[67,491,492,493,498,499],{},"Via API Native : ",[139,494,497],{"href":495,"rel":496},"https:\u002F\u002Fplaywright.dev\u002F",[143],"Playwright"," ou ",[139,500,503],{"href":501,"rel":502},"https:\u002F\u002Fpptr.dev\u002F",[143],"Puppeteer",[56,505,507],{"id":506},"les-tests-bancals","Les tests bancals",[39,509,510],{},"Si vous avez déjà commencé vos premiers tests, vous tomberez sur des tests bancals (Flaky en anglais) dont le résultat n'est pas répétable de manière certaine. Un jour il passe, l'autre non...",[39,512,513],{},"Un élément de réponse pour comprendre pourquoi il ne passe pas tout le temps est que le test est basé sur “quelque chose” de variable. Dans certains cas, pour contourner cette variabilité, nous pouvons simuler (mocker) ou remplacer l’élément variant.",[39,515,516],{},"Exemple:",[64,518,519,522,525,528,537,540,543],{},[67,520,521],{},"Lecture d'un tableau de données dans un ordre non déterministe",[67,523,524],{},"Modification des données par un test précédent",[67,526,527],{},"Appel à une date relative (Aujourd'hui, demain, hier)",[67,529,530,531,536],{},"Sélecteur CSS non sûr (Vous pouvez utiliser les rôles: ",[139,532,535],{"href":533,"rel":534},"https:\u002F\u002Ftesting-library.com\u002F",[143],"Testing-library",")\nDes conseils pour garder une base de tests saine et, en conséquence, une confiance envers vos tests:",[67,538,539],{},"\"N'hésitez pas à mettre vos tests bancals en quarantaine\"",[67,541,542],{},"\"Mettez des règles sur vos quarantaines (Nombre de jours maximums en quarantaine, nombre de tests maximum, etc)\"",[67,544,545,546,551,552,557,558,563],{},"“De manière générale, respectez les principes ",[139,547,550],{"href":548,"rel":549},"https:\u002F\u002Fdzone.com\u002Farticles\u002Ffirst-principles-solid-rules-for-tests",[143],"FIRST","”\nIl existe des questions ouvertes que sont l'unité d'un test unitaire, la sociabilité des tests ou l'utilité d'un test qui sont en fait des sujets exploratoires.\nSi vous êtes totalement perdu, les langages front étant orientés composant, il est plus simple de prendre comme unité par défaut le composant (attention, ",[139,553,556],{"href":554,"rel":555},"https:\u002F\u002Fwww.entropywins.wtf\u002Fblog\u002F2017\u002F01\u002F02\u002Fsimple-is-not-easy\u002F",[143],"simple n'est pas facile",").\nPour explorer ces notions, vous pouvez essayer ",[139,559,562],{"href":560,"rel":561},"https:\u002F\u002Fmedium.com\u002F@imenezzine\u002Ftdd-vs-test-first-development-quelle-est-la-diff%C3%A9rence-ccbea4771484",[143],"le test-first ou encore le test driven developement",".",[56,565,567],{"id":566},"les-stratégies-de-tests","Les stratégies de tests",[39,569,570],{},"Vous trouverez dans la JS-Jungle de nombreux noms de tests (unitaire, intégration, bout en bout, acceptance, composants, contracts, etc).\nLeurs significations varient en fonction des équipes, ce sont vos collègues qui vous expliquerons, au mieux, leur vision.",[39,572,573],{},"De manière simplifiée, nous dirons que nous avons des tests unitaires pour les fonctions utilitaires, des tests d’intégration pour les composants et des tests de bout en bout pour simuler le comportement utilisateur.\nPlus vous vous rapprochez des tests unitaires, plus vos unités de test sont fines et rapides mais moins vous pouvez avoir confiance en ceux-ci seules.",[39,575,576,577,582],{},"La question finale sera donc lesquels utiliser et en quelle proportion ?\nVous trouverez de nombreuses distributions de tests : ",[139,578,581],{"href":579,"rel":580},"https:\u002F\u002Fthetestingarchitect.substack.com\u002Fp\u002Ftest-pyramid-test-honeycomb-test",[143],"la pyramide, l'alvéole, le trophée",".\nL'orientation des langages front modernes pousse vers l'utilisation de la distribution en trophée (Plus de tests de bout en bout que de tests unitaires et moins de tests de bout en bout que de tests d'intégration).",[56,584,586],{"id":585},"ouverture","Ouverture",[39,588,589],{},"J'aimerais insister sur l'analyse statique de votre langage. Même si ce n'est pas un test en soit, le fait de typer, de créer des interfaces pour vos échanges, cela vous aidera à donner de la confiance en votre code et même à visualiser les sujets métiers.",[39,591,592],{},"Enfin, les tests manuels ne sont pas à bannir. Ils ne sont pas adaptés pour garantir la non-régression. Par contre, leur flexibilité est avantageuse pour des sujets exploratoires (Nouvelles erreurs, cas à la marge, etc). Peut-être devrions nous les appeler “tests exploratoires” ? A vous d'y répondre et de continuer de délivrer de la valeur pour vos utilisateurs et clients !",[39,594,595,596,601],{},"Merci de votre lecture et merci aussi à Lise QUESNEL pour son talk !\nJ'en profite pour la féliciter pour la qualité de la narration et de son écriture.\nN'hésitez pas à regarder la ",[139,597,600],{"href":598,"rel":599},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=LqwfhxyiwXU&list=PLuZ_sYdawLiXf92Uq5iE5LlYKrOv1IUvx&index=7",[143],"rediffusion"," de cette conférence.",{"title":277,"searchDepth":278,"depth":278,"links":603},[604,605,606,607,608,609,610,611,612,613,614,615],{"id":323,"depth":283,"text":324},{"id":339,"depth":283,"text":340},{"id":349,"depth":283,"text":350},{"id":356,"depth":283,"text":357},{"id":371,"depth":283,"text":372},{"id":406,"depth":283,"text":407},{"id":420,"depth":283,"text":421},{"id":434,"depth":283,"text":435},{"id":467,"depth":283,"text":468},{"id":506,"depth":283,"text":507},{"id":566,"depth":283,"text":567},{"id":585,"depth":283,"text":586},"2024-10-11T12:52:42.324Z","Cet article fait suite au [retour de HoppR sur le DevFest 2024](https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2024-08-27-retour-sur-le-devfest) et se concentre sur la conférence de Lise QUESNEL qui aborde les outils",{},"\u002Fblogs\u002F2024-10-11-retour-survivre-dans-la-js-jungle-des-outils-de-tests-de-lise-quesnel-au-devfest-2024",[621,626],{"id":622,"name":623,"image":624,"linkedin":625,"x":14},"67adfd77-4b84-4496-b55d-3391541f59c5","Michaël Bernasinski","https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F82ebd0fe-de28-43f3-ab7b-0431af41baad\u002FPhoto_HoppR.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20241011%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20241011T125242Z&X-Amz-Expires=3600&X-Amz-Signature=dfeb6b874b089d1b0802df82a5a3f85d6ab5167b870d244e384d1c65947e1aca&X-Amz-SignedHeaders=host&x-id=GetObject","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmichael-bernasinski",{"id":301,"name":302,"image":627,"linkedin":304,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc88f5dfa-16db-4e6f-acf1-34dd80ee8766\u002Femma_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20241011%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20241011T125242Z&X-Amz-Expires=3600&X-Amz-Signature=a0d7333f5bdeefc5c004ae47d547f6548bfe142cd76f8676bc5bbf202d4f08d3&X-Amz-SignedHeaders=host&x-id=GetObject",{"title":315,"description":617},"blogs\u002F2024-10-11-retour-survivre-dans-la-js-jungle-des-outils-de-tests-de-lise-quesnel-au-devfest-2024\u002Findex",[310,631,308,632,633,311],"2024","js","testing","FPenvAfjSeiSnJY2IW4Rq8v5wtg1U-1XvtHA0BjM4Hk",{"id":636,"title":637,"alt":638,"authors":639,"body":646,"date":844,"description":845,"extension":288,"image":289,"meta":846,"navigation":291,"ogImage":289,"path":847,"published":291,"reviewers":848,"seo":860,"stem":861,"tags":862,"__hash__":865},"blogs\u002Fblogs\u002F2025-08-01-refactorer-sans-casser-le-golden-master-appliqu-un-outil-finops\u002Findex.md","Refactorer sans casser : le Golden Master appliqué à un outil FinOPS","Illustration d’un Golden Master sous forme de disquette",[640,645],{"id":641,"name":642,"image":643,"linkedin":644,"x":14},"23ff4462-cd38-8078-b550-c960c1e6ebdb","Sandrine Miras",".\u002Fassets\u002Fauthor-sandrine-miras.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fsandrine-miras\u002F",{"id":16,"name":17,"image":18,"linkedin":19,"x":14},{"type":31,"value":647,"toc":834},[648,652,655,658,661,665,679,688,700,705,709,716,721,725,730,747,754,760,764,769,777,782,802,806,817,821,828,831],[34,649,651],{"id":650},"refactorer-sans-casser-le-golden-master","Refactorer sans casser : le Golden Master",[39,653,654],{},"appliqué à un outil FinOPS",[39,656,657],{},"Refondre un outil critique sans casser l’existant ? Pas simple.\nLa mission était claire : continuer à faire évoluer la solution FinOPS de notre client tout en garantissant que chaque chiffre affiché reste juste. Parce qu’ici, une erreur, ça ne se compte pas en lignes de code… mais en euros.",[39,659,660],{},"Pour sécuriser le projet, Théo Lanord, consultant et développeur Full Stack chez HoppR, a choisi une arme simple et efficace : le Golden Master. Une pratique Craft qui n’est pas systématiquement utilisée, mais qui peut sauver un projet. On lui a demandé : pourquoi cette méthode, et qu’est-ce que ça change concrètement ?",[56,662,664],{"id":663},"théo-cétait-quoi-le-contexte-quand-tu-es-arrivé-sur-le-projet","Théo, c’était quoi le contexte quand tu es arrivé sur le projet ?",[39,666,667,671,675,676],{},[668,669,670],"strong",{},"Théo :",[672,673,674],"em",{},"« J’ai rejoint l’équipe tech d’un acteur majeur de la distribution présent dans plusieurs pays, qui développe et maintient des outils internes pour les entreprises du groupe."," ",[672,677,678],{},"Leur mission est de fournir des services fiables et industrialisés à toutes les équipes de développement du groupe, pour qu’elles puissent livrer rapidement et en toute sécurité.",[39,680,681,684,685],{},[672,682,683],{},"Pour ça, on s’appuie sur un écosystème"," allant de ",[672,686,687],{},"GitHub pour le versioning, GitHub Actions pour automatiser les déploiements, SonarQube pour analyser la qualité du code, Ghas pour la sécurité, JFrog pour gérer les images, Jira pour le suivi et enfin Confluence pour la doc. Bref, un environnement complet mais complexe, où tout doit s’enchaîner sans faille.",[39,689,690,675,693,696,697],{},[672,691,692],{},"Dans ce contexte, l’outil FinOPS est un produit clé. Il analyse la consommation des ressources Cloud et la traduit en euros permettant aux différentes entités du groupe de savoir combien elles dépensent et sur quoi.",[672,694,695],{},"L’enjeu est fort"," puisque chaque entité ",[672,698,699],{},"a ses propres projets, ses propres besoins, et doit pouvoir maîtriser ses coûts.",[39,701,702],{},[672,703,704],{},"Avant, il y avait un budget global pour tout le monde. Aujourd’hui, on est dans une logique de refacturation interne par Business Unit. Ça change tout : chaque équipe doit rendre des comptes et optimiser sa consommation. Et cet outil est le cœur de ce pilotage. »",[56,706,708],{"id":707},"où-se-situait-le-challenge-principal","Où se situait le challenge principal ?",[39,710,711,713],{},[668,712,670],{},[672,714,715],{},"« Le problème, c’est que l’entreprise utilisait déjà un outil FinOPS au quotidien. Mais on devait le faire évoluer sans compromettre son fonctionnement actuel. Or, il y avait peu de tests automatisés pour garantir que les comportements en place resteraient corrects.",[39,717,718],{},[672,719,720],{},"Quand tu touches à un code hérité sans filet de sécurité, chaque modification est un pari risqué. Tu peux introduire des régressions invisibles… qui auront un impact direct sur la facturation et les arbitrages budgétaires. Et là, l’erreur ne se compte pas en millisecondes de temps de calcul mais en milliers d’euros. »",[56,722,724],{"id":723},"pourquoi-avoir-choisi-le-golden-master","Pourquoi avoir choisi le Golden Master ?",[39,726,727],{},[672,728,729],{},"« Parce qu’on avait besoin de figer le comportement actuel avant d’aller plus loin. Le Golden Master, c’est une pratique simple mais redoutablement efficace :",[64,731,732,737,742],{},[67,733,734],{},[672,735,736],{},"On capture l’existant en enregistrant les entrées et sorties du système.",[67,738,739],{},[672,740,741],{},"On crée une “photo” de référence qui servira de point de comparaison.",[67,743,744],{},[672,745,746],{},"À chaque évolution, on compare les résultats à cette référence pour détecter toute régression.\nEn clair, c’est comme mettre un miroir en face du logiciel : tant que l’image reste identique, tu sais que tu n’as rien cassé. Ça nous a permis de refactorer, modulariser et optimiser le code en toute sérénité, sans réécrire tout le produit. »",[39,748,749,750,753],{},"👉 ",[668,751,752],{},"Pour résumer",", on peut définir le Golden Master comme une méthode de validation utilisée principalement dans les tests de non-régression. Elle consiste à conserver une version de référence du comportement attendu d’un système – souvent sous forme de données d’entrée et de sortie – afin de pouvoir comparer automatiquement les résultats des versions futures et garantir qu'aucune modification n’altère le fonctionnement prévu.",[39,755,756],{},[45,757],{"alt":758,"src":759},"Mise en avant de l’importance de la comparaison des output dans le Golden Master","\u002Fcontent-assets\u002F2025-08-01-refactorer-sans-casser-le-golden-master-appliqu-un-outil-finops\u002Fassets\u002Fimg1.webp",[56,761,763],{"id":762},"la-méthode-du-golden-master-est-parfois-critiquée-était-elle-la-meilleure-solution-dans-ce-contexte","La méthode du Golden Master est parfois critiquée. Était-elle la meilleure solution dans ce contexte ?",[39,765,766],{},[672,767,768],{},"« Si tu pars from scratch, tu peux faire autrement. Mais dans une situation comme celle-ci, un outil critique, déjà en production, avec des impacts financiers, c’est une assurance vie. Le Golden Master, c’est comme mettre un filet sous un funambule : tu avances serein, tu sais que même si tu tombes, tu ne te blesseras pas.",[39,770,771,675,774],{},[672,772,773],{},"A noter que",[672,775,776],{},"ça ne remplace pas les tests unitaires ni le TDD. Ça vient en complément, comme un filet de sécurité quand tu n’as pas d’historique fiable. Et ça s’inscrit parfaitement dans une logique Craft : on ne fait pas de la qualité “pour faire joli”, on le fait pour apporter de la confiance et réduire le risque métier. »",[39,778,779],{},[668,780,781],{},"👉 Le Golden Master en 3 points clés :",[64,783,784,790,796],{},[67,785,786,789],{},[668,787,788],{},"Objectif :"," prévenir les régressions dans un code hérité.",[67,791,792,795],{},[668,793,794],{},"Quand l’utiliser :"," reprise de legacy sans confiance dans les tests actuels.",[67,797,798,801],{},[668,799,800],{},"Limite :"," il ne valide pas la justesse métier, mais garantit la stabilité des comportements existants.",[56,803,805],{"id":804},"et-concrètement-quel-a-été-limpact-pour-le-client","Et concrètement, quel a été l’impact pour le client ?",[39,807,808,675,811,675,814],{},[672,809,810],{},"« On a pu faire évoluer le produit plus efficacement, avec moins de stress, parce qu’on savait qu’on ne casserait rien d’essentiel. L’équipe a gagné en sérénité, le client en fiabilité. Et au-delà de la technique, ça a changé notre",[672,812,813],{},"posture",[672,815,816],{},"en tant que consultant et celle de notre client en tant qu’utilisateur: on peut refactorer en toute confiance, innover sans risquer de mettre en péril la facturation. »",[56,818,820],{"id":819},"si-tu-devais-résumer-pourquoi-le-craft-est-indispensable-dans-ce-genre-de-projet","Si tu devais résumer, pourquoi le Craft est indispensable dans ce genre de projet ?",[39,822,823,825],{},[668,824,670],{},[672,826,827],{},"« Parce que ça crée de la confiance. Pour les devs, qui savent qu’ils peuvent intervenir sans crainte. Pour le client, qui sait que son outil critique ne tombera pas à cause d’une évolution mal contrôlée. Et cette confiance, ça se traduit par plus de qualité, plus de sérénité et plus de vitesse. »",[39,829,830],{},"Chez HoppR, on croit que la qualité n’est jamais un luxe, mais une assurance. Le Golden Master est une des pratiques que nous utilisons, mais pas la seule : TDD, pair programming, revue de code… autant de leviers pour livrer des solutions robustes.",[39,832,833],{},"Merci de votre lecture !",{"title":277,"searchDepth":278,"depth":278,"links":835},[836],{"id":650,"depth":278,"text":651,"children":837},[838,839,840,841,842,843],{"id":663,"depth":283,"text":664},{"id":707,"depth":283,"text":708},{"id":723,"depth":283,"text":724},{"id":762,"depth":283,"text":763},{"id":804,"depth":283,"text":805},{"id":819,"depth":283,"text":820},"2025-08-01T14:37:21.374Z","appliqué à un outil FinOPS  Refondre un outil critique sans casser l’existant ? Pas simple. La mission était claire : continuer à faire évoluer la solution FinOPS de notre client tout en garantissant ",{},"\u002Fblogs\u002F2025-08-01-refactorer-sans-casser-le-golden-master-appliqu-un-outil-finops",[849,852,857],{"id":850,"name":851,"image":14,"linkedin":14,"x":14},"197f4462-cd38-801b-859a-c33742e0ed0d","Pierre-Emmanuel Denys",{"id":853,"name":854,"image":855,"linkedin":856,"x":14},"174f4462-cd38-8061-bc88-f29602fcef5d","Guillaume Ferlin","https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F27c18bae-6c33-403c-b7fd-7d46ce96c376\u002FGuillaume_Ferlin_Image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466ULFPFZUH%2F20250801%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250801T143721Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEMb%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJGMEQCIG1mqZcKiAMfFxyUrFUGHfaT4CcUgj%2BLoBszrMnBcKdXAiAzDBfUqsdSt4Q4ipOxsQZieesJXoa7qrGJlD350URqQiqIBAjv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAAaDDYzNzQyMzE4MzgwNSIMdcI0v36Q64VtIlbtKtwDL%2BNrlFhdx1Ke4l94CtVPwXsIzuwNu4ZcUAnnbi29HkBC9nOvGrDrEzbdydY0p6ZBhhd3md7q1HhIgSeKa7dyJN84TeFlkYMgZCqmV2unHi2B%2FOvARfm7%2FhpF7VKbXYFsssXA7%2Bojou0hb%2BeRXUjjqCHJ%2B4l%2B7wkgzufa9aS4OaGfoJj%2Bld06GnqJMjNrzMpCcjxyzOo5BUDGxv8H8Q%2FEZCQKeeG%2B%2BlffOAHpbcaa4YGG6ebhh4PwCZNiJtrMsLlTT076jFJEYyG%2FIUmyXY4pwPYuhX3kceWV2%2FFdZ7xLvvLK3STrjdcHfinSzf2bvjKmSInnRVf27B7QpS0SlvzQBtEX2g4EI7bUDbw2z5x4pgPfhceoX6R2yZFzaC48izTkcsmmwOQLDY6Rl8iAShSURx%2FM1JLq0ThwFdiAosmqhKfgxrbfOMr9KcPyfPdXPWmstqwaMS%2BJdk19a21v0ttyf84J3D6hCTKffSJFn7jsqJcyq78gEqO%2BTUkrs%2BAgLlQSz7kXSXYTkSmI8xTtl8FYscnz61uH2KOCBJlHLjZMCm4ElhjNho1hCnj9FJOQQfXHxJzBtxnkb%2Bs%2B9BAcvtzVNIdr0zxoPc5qttMsp9p88RALtgdpzRGjaWXRUtYwkZazxAY6pgFtPfWHqkUKY%2B2ZtC9UZtQu8d9o%2BD1i%2Bqs2B8iimvVqpJnlCAkGL3KSV%2FlDPd0PrFfrsiTf1gF4CPLtVb1N68fdMMUv8TCpVC0sFfHn0jeqyzT3FBPezG14nCfqkWX8j9%2BjSxTk7XNBg1y5YP0c0GoLFvWODluLCeivL8O%2Fq%2BwV8BmSxNj8HIaH5NBPkmvFN13vcIrHIoEQ41kIRqSdpc5l8AttcKt3&X-Amz-Signature=b37ba0b7d8ebcfef63a5b3d2f7b75ff8c4c2539d2f6e8b41d1a5d76e62704901&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fguillaume-ferlin-262681272\u002F",{"id":858,"name":859,"image":14,"linkedin":14,"x":14},"188f4462-cd38-80d5-b9e6-ec28a94d11e5","Bastien Dufour",{"title":637,"description":845},"blogs\u002F2025-08-01-refactorer-sans-casser-le-golden-master-appliqu-un-outil-finops\u002Findex",[863,308,864,633],"craft","test","tgcM4QwqUIxjcojLdkvtnlbvO2CV7xpDVkbkPCjFAk4",{"id":867,"title":868,"alt":869,"authors":870,"body":873,"date":1317,"description":1318,"extension":288,"image":289,"meta":1319,"navigation":291,"ogImage":289,"path":1320,"published":291,"reviewers":1321,"seo":1330,"stem":1331,"tags":1332,"__hash__":1335},"blogs\u002Fblogs\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Findex.md","Alors ? C’était comment ce premier DevFest Lyon ?","L’équipe HoppR sur la scène du DevFest Lyon",[871],{"id":622,"name":623,"image":872,"linkedin":625,"x":14},".\u002Fassets\u002Fauthor-michal-bernasinski.webp",{"type":31,"value":874,"toc":1310},[875,883,897,900,906,909,912,915,919,924,927,942,951,957,960,981,987,990,993,997,1002,1011,1036,1045,1048,1054,1057,1060,1075,1078,1105,1108,1122,1125,1129,1134,1143,1146,1149,1155,1158,1169,1172,1180,1184,1189,1198,1206,1209,1215,1218,1233,1246,1249,1274,1277,1280,1284,1287,1290,1301,1304,1307],[39,876,877,878,563],{},"Une question que l’on me pose beaucoup en ce début de semaine. En effet, vendredi 28 novembre 2025, nous avons eu la chance, avec plusieurs collègues de HoppR, de faire partie des 250 participants de la première édition du ",[139,879,882],{"href":880,"rel":881},"https:\u002F\u002Fdevfest.gdglyon.com\u002F",[143],"DevFest Lyon",[39,884,885,886,891,892,896],{},"En effet, notre participation s’inscrit dans le cadre de la veille tech proposée, organisée et prise en charge par HoppR. C’est d’ailleurs comme cela que j’avais pu participer au Lyon Craft plus tôt cette année (et écrire deux articles sur ce blog, à retrouver ",[139,887,890],{"href":888,"rel":889},"https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2025-04-24-lyon-craft-2025-12",[143],"ici"," et ",[139,893,890],{"href":894,"rel":895},"https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2025-05-07-lyon-craft-2025-22",[143],").",[39,898,899],{},"Avant de rentrer dans le vif du sujet, nous sommes tous unanimes chez HoppR pour saluer l’organisation au poil de l’évènement. Nous avons toutes et tous été très bien accueillis, et nous avons passé un moment de qualité avec nombre d’acteurs importants de la scène tech lyonnaise.",[39,901,902],{},[45,903],{"alt":904,"src":905},"Photo du programme de la journée, directement dans le badge nominatif délivré à l’accueil de l’évènement","\u002Fcontent-assets\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Fassets\u002Fimg1.webp",[39,907,908],{},"Nous voici donc arrivés à cette journée de conférences, réparties sur deux tracks, et donc des choix difficiles à faire tant les talks étaient prometteurs.",[39,910,911],{},"Beaucoup de thématiques étaient proposées : Data & IA, Frontend, Backend, Software Architecture, Cloud, Infra et DevOps, il y en avait pour tous les goûts. On notera cependant une forte présence de la première thématique : la datascience et les LLM ont la côte !",[39,913,914],{},"Je vous propose ici de vous (re)plonger dans celles auxquelles j’ai pu assister en cette froide matinée lyonnaise.",[56,916,918],{"id":917},"keynote-datascience-for-performance","Keynote : Datascience for performance",[39,920,921],{},[672,922,923],{},"Par Joseph MESTRALLET - Data & AI - 30 minutes",[39,925,926],{},"Après la traditionnelle ouverture par le staff devant une salle pleine, avec remerciement des sponsors et rappels de l’organisation, Joseph prend la parole pour une keynote surprise.",[39,928,929,930,935,936,941],{},"Son CV est impressionnant : il accompagne certains des plus grands champions, comme ",[139,931,934],{"href":932,"rel":933},"https:\u002F\u002Fwww.equipedefrance.com\u002Fathlete\u002Fquentin-fillon-maillet",[143],"Quentin Fillon Maillet"," (5 médailles de biathlon aux JO de Pékin 2022, dont 2 en or) ou ",[139,937,940],{"href":938,"rel":939},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FRuth_Croft",[143],"Ruth Croft"," (vainqueure de l’Ultra-Trail du Mont-Blanc 2025). Et comment fait-il pour aider ces grands champions ? Par la data, par la science, par la datascience !",[39,943,944,945,950],{},"Joseph nous fait un petit historique des liens entre sport de haut niveau et science, de l’amélioration des photos finish à l’exploit du ",[139,946,949],{"href":947,"rel":948},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FIneos_1:59_Challenge",[143],"marathon en moins de 2h de Kipchoge",". La densification des performances au plus haut niveau a nécessité une nouvelle approche basée sur la science et la data, pour gagner encore les quelques secondes, les quelques centimètres qui font la différence entre un champion olympique et les finalistes qui resteront inconnus du grand public.",[39,952,953],{},[45,954],{"alt":955,"src":956},"Ruth Croft à l’arrivée de l’UTMB en 2025","\u002Fcontent-assets\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Fassets\u002Fimg2.webp",[39,958,959],{},"Mais revenons au travail de Joseph, qui nous parle de quatre niveaux de datas, toujours plus précis:",[64,961,962,965,968,975],{},[67,963,964],{},"Les données issues de la littérature",[67,966,967],{},"Les données personnalisées, via des applications de suivi comme Strava par exemple",[67,969,251,970],{},[139,971,974],{"href":972,"rel":973},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FR%C3%A9glage_fin",[143],"fine tuning",[67,976,977,978],{},"Le compute, pour trouver les meilleures conditions pour une course via un ",[672,979,980],{},"digital twin",[39,982,983,984,986],{},"Cette notion de ",[672,985,980],{}," revient souvent : il s’agit d’un avatar numérique de l’athlète, que l’on fait participer virtuellement des centaines de fois à la prochaine course, avec des paramètres différents, pour trouver la meilleure stratégie à adopter.",[39,988,989],{},"Joseph nous parle également de son quotidien aux côtés des athlètes. Ceux-ci doivent être très impliqués au quotidien pour obtenir de la data de la meilleure qualité possible. A l’inverse, une grande confiance avec lui doit être construite, il s’est donc lui aussi mis à la course à pied de manière intensive pour gagner de la connaissance du terrain et de la légitimité.",[39,991,992],{},"Le speaker, visiblement passionné, égraine les anecdotes de ses championnes et champions, et montre à quel point ce travail de performance demande une communication et une proximité forte entre le scientifique et les sportifs.",[56,994,996],{"id":995},"démêler-vrais-produits-et-hallucinations-rex-dun-agent-téléphonique-chercheur-de-chaussettes","Démêler vrais produits et hallucinations, REX d’un agent téléphonique chercheur de chaussettes",[39,998,999],{},[672,1000,1001],{},"Par Marie TERRIER - Data & AI - 50 minutes",[39,1003,1004,1005,1010],{},"Marie est CTO d’une ",[139,1006,1009],{"href":1007,"rel":1008},"https:\u002F\u002Fwww.yelda.ai\u002F",[143],"start-up"," proposant un SaaS d’agent vocaux. Cette société a proposé des solutions avant l’avènement des LLMs, et a suivi celui-ci pour présenter des solutions plus performantes. Ainsi, nous faisons un tour de l’historique :",[64,1012,1013,1030,1033],{},[67,1014,1015,1016,1023,1027,1029],{},"2017 : Le Machine Learning existe déjà depuis longtemps, mais les LLMs n’en sont qu’à leurs balbutiements. L’agent vocal est alors basé sur du ",[139,1017,1020],{"href":1018,"rel":1019},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FTraitement_automatique_des_langues",[143],[672,1021,1022],{},"natural language processing",[139,1024,1026],{"href":1018,"rel":1025},[143]," (NLP)",[672,1028,563],{}," On essaie de déterminer l’intention du client au bout du fil, et de proposer une réponse pré-généré en fonction. Et si on y parvient pas, alors on demande à l’utilisateur de répéter. Un bon début, mais ce n’est pas très pratique.",[67,1031,1032],{},"2022 : Les LLMs sont utilisés pour ces cas de questions inattendues, et permettent donc de combler le besoin. La fin de l’histoire ?",[67,1034,1035],{},"Fin 2023 : Une nouvelle commande arrive, avec pour problématique la suivante : l’IA peut elle aider les pharmaciens à commander des produits par téléphone ?",[39,1037,1038,1039,1044],{},"A priori, rien de bien sorcier maintenant que nous avons des outils adaptés et efficaces. Mais finalement, c’est la douche froide. Une liste de 40 produits seront proposés, et ceux-ci posent de nombreux problèmes : nous avons ici affaire avec du franglais, sans aucun standard, avec des notions complexes et difficilement transcriptibles comme le ",[139,1040,1043],{"href":1041,"rel":1042},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FMillim%C3%A8tre_de_mercure",[143],"mmHg"," par exemple.",[39,1046,1047],{},"Difficile ainsi de trouver la bonne paire de chaussettes ou de bas de contention à commander…",[39,1049,1050],{},[45,1051],{"alt":1052,"src":1053},"Marie nous présente un échantillon de la liste des 40 produits qui seront disponibles à l’achat. On comprend tout de suite la problématique.","\u002Fcontent-assets\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Fassets\u002Fimg3.webp",[39,1055,1056],{},"De plus, les pharmaciens ne connaissent pas le nom complet de chaque produit, il est donc nécessaire de poser des questions pour être sûrs de comprendre, tout en étant rapide étant donné que nous sommes au téléphone. Le service existant alors est inadapté, tout est trop long, et le LLM pose trop de questions pour arriver au produit désiré.",[39,1058,1059],{},"La solution passe par des sous-agents, qui permettent d’avoir plus de pertinence dans les questions posées tout en étant plus rapide. C’est donc parfait ! Enfin jusqu’à ce que le catalogue passe de 40 à 20000 références dont certaines en allemand…",[39,1061,1062,1063,1068,1069,1074],{},"Nous sommes en 2023, et les LLMs disposent encore de limites, comme de petites ",[139,1064,1067],{"href":1065,"rel":1066},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FFen%C3%AAtre_de_contexte",[143],"fenêtres de contexte"," (8000 tokens puis le modèle “oublie”), une latence trop importante (difficile d’attendre 30s au téléphone) et des ",[139,1070,1073],{"href":1071,"rel":1072},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FHallucination_(intelligence_artificielle)",[143],"hallucinations"," fréquentes.",[39,1076,1077],{},"Plusieurs essais sont donc effectués :",[64,1079,1080,1088,1097],{},[67,1081,1082,1087],{},[139,1083,1086],{"href":1084,"rel":1085},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FG%C3%A9n%C3%A9ration_%C3%A0_enrichissement_contextuel",[143],"RAG"," et prompt dynamique, un bon début mais toujours trop lent et ne gère que 80 produits max lors des tests",[67,1089,1090,1091,1096],{},"Une ",[139,1092,1095],{"href":1093,"rel":1094},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FBase_de_donn%C3%A9es_vectorielle",[143],"base de données vectorielle",", mais beaucoup de produits ont des noms trop proches sémantiquement, et chaque requête donne trop de retours",[67,1098,1099,1104],{},[139,1100,1103],{"href":1101,"rel":1102},"https:\u002F\u002Fwww.algolia.com\u002Ffr",[143],"Algolia",", un moteur de recherche boosté à l’IA, qui donne de bons résultats",[39,1106,1107],{},"La solution se construit alors avec plusieurs briques comme ceci :",[64,1109,1110,1113,1116,1119],{},[67,1111,1112],{},"LLM extracteur, qui fournit un nom de produit partiel",[67,1114,1115],{},"Algolia, permettant d’effectuer la recherche",[67,1117,1118],{},"LLM conversationnel",[67,1120,1121],{},"LLM évaluateur",[39,1123,1124],{},"Ainsi, Marie et son équipe ont pu proposer à leur client un outil répondant pleinement au besoin : celui de permettre à des pharmaciens de commander des produits… dont les fameuses chaussettes du titre !",[56,1126,1128],{"id":1127},"lets-play-factorio","Let’s play Factorio",[39,1130,1131],{},[672,1132,1133],{},"Par Julien WITTOUCK - Software Architecture - 50 minutes",[39,1135,1136,1137,1142],{},"Julien est un grand fan du jeu ",[139,1138,1141],{"href":1139,"rel":1140},"https:\u002F\u002Ffactorio.com\u002F",[143],"Factorio",". Ce jeu bac-à-sable consiste à construire et gérer une usine permettant d’exploiter des ressources afin de s’échapper de la planète. Tout le plaisir du jeu et d’agrandir et d’optimiser chaque extraction et production.",[39,1144,1145],{},"Le jeu permet, à l’instar de Minecraft, une grande liberté dans sa construction, y compris en utilisant de la logique permettant même de coder dans Factorio.",[39,1147,1148],{},"Julien se propose ici de nous illustrer de nombreux concepts que l’on peut trouver dans nos projets professionnels.",[39,1150,1151],{},[45,1152],{"alt":1153,"src":1154},"Le logo du jeu Factorio","\u002Fcontent-assets\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Fassets\u002Fimg4.webp",[39,1156,1157],{},"Voici les concepts abordés :",[64,1159,1160,1163,1166],{},[67,1161,1162],{},"Développement (Plat de spaghettis, Architecture en couches, Micro-services..)",[67,1164,1165],{},"Urbanisation (ESB, Scaling Vertical\u002FHorizontal)",[67,1167,1168],{},"Sécurité (Métriques & monitoring, DDoS, Firewalls…)",[39,1170,1171],{},"L’exécution est impressionnante, et tous les concepts sont expliqués de manière visuelle et claire. Parfait pour présenter notre travail de tous les jours à des personnes non-tech ! Et il aura fallu plus de 100h pour préparer ce talk original.",[39,1173,1174,1175,563],{},"Si vous souhaitez vous aussi voir ce qu’a construit Julien, un replay de son ",[139,1176,1179],{"href":1177,"rel":1178},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=I07DxOLw10E",[143],"talk est disponible sur YouTube",[56,1181,1183],{"id":1182},"cétait-dans-quel-épisode-déjà-bref-jai-indexé-une-série-culte","C'était dans quel épisode déjà ? Bref, j'ai indexé une série culte",[39,1185,1186],{},[672,1187,1188],{},"Par Tim Carry - Data & AI - 20 minutes",[39,1190,1191,1192,1197],{},"Tim travaille chez Algolia (oui encore eux). Tim est développeur. Mais surtout, Tim est un très grand fan de la série ",[139,1193,1196],{"href":1194,"rel":1195},"https:\u002F\u002Fwww.imdb.com\u002Ffr\u002Ftitle\u002Ftt2044128\u002F",[143],"Bref"," (note personnelle : il a bien raison !).",[39,1199,1200,1201,563],{},"Il s’est lancé sur un projet personnel qui lui tenait à cœur : un site qui permettrait de trouver l’épisode et l’extrait d’une réplique culte que l’on recherche. Ce sera la genèse de ",[139,1202,1205],{"href":1203,"rel":1204},"https:\u002F\u002Fwww.brefsearch.com\u002F",[143],"brefsearch.com",[39,1207,1208],{},"Les fonctionnalités du site : recherche par ligne de dialogue \u002F pensée, gère les fautes de frappe, aperçu animé de l’extrait au survol, recherche rapide et qui mène directement au moment trouvé.",[39,1210,1211],{},[45,1212],{"alt":1213,"src":1214},"Un exemple : la recherche du terme “Internet” sur brefsearch.com. Le résultat est très rapide et pertinent, et les extraits se jouent au survol.","\u002Fcontent-assets\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Fassets\u002Fimg5.webp",[39,1216,1217],{},"Mais comment cela marche-t-il ?",[39,1219,1220,1221,1226,1227,1232],{},"Tout d’abord, il faut une extraction via ",[139,1222,1225],{"href":1223,"rel":1224},"https:\u002F\u002Fgithub.com\u002Fyt-dlp\u002Fyt-dlp",[143],"Yt-dlp",", un outil en lignes de commande qui permet à Tim de récupérer toutes les vidéos de la ",[139,1228,1231],{"href":1229,"rel":1230},"https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLlFikkv2B2ffwYiFQJmcao3RKtw1DFMz5",[143],"playlist Bref sur YouTube",". Il obtient également beaucoup de metadatas très utiles, et également les sous-titres automatiques.",[39,1234,1235,1236,1241,1242,1245],{},"Un problème se pose cependant, dans Bref, ça parle vite. Les sous-titres automatiques sont de qualité médiocre. Pour récupérer du texte exploitable, une extraction audio est alors faite par Yt-dlp puis passés dans ",[139,1237,1240],{"href":1238,"rel":1239},"https:\u002F\u002Fwww.happyscribe.com\u002Ffr",[143],"HappyScribe",", un outil de ",[672,1243,1244],{},"speech-to-text"," IA. C’est bien mieux, et la retouche des dialogues est facilement réalisable (et cela donne une raison de plus de revoir la série !)",[39,1247,1248],{},"Et pour la suite :",[64,1250,1251,1259,1262],{},[67,1252,1253,1258],{},[139,1254,1257],{"href":1255,"rel":1256},"https:\u002F\u002Fwww.ffmpeg.org\u002F",[143],"ffmpeg"," permet de construire les frames des lignes de texte trouvées et les aperçus animés",[67,1260,1261],{},"Algolia permet la recherche",[67,1263,1264,1265,1270,1271,896],{},"Le frontend est hébergé sur Netlify en utilisant le CDN ",[139,1266,1269],{"href":1267,"rel":1268},"https:\u002F\u002Fcloudinary.com\u002F",[143],"Cloudinary",", avec quelques astuces données par Tim (notamment l’utilisation de LQIP (",[672,1272,1273],{},"Low Quality Image Placeholder",[39,1275,1276],{},"Le résultat ?",[39,1278,1279],{},"Un site efficace, qui fait très bien ce qu’il a à faire, et qui impressionne les créateurs de la série eux-mêmes. Je ne sais pas vous, mais moi cela m’a donné envie de revoir Bref… J’en ai mangé tout le week-end suivant !",[56,1281,1283],{"id":1282},"speechless-fin-de-la-matinée","Speechless & fin de la matinée",[39,1285,1286],{},"Après ces présentations toutes plus intéressantes les unes que les autres, il est maintenant temps de récupérer des forces et de débriefer autour d’un grand buffet. Mais l’heure n’est pas qu’à la pause : un speechless live est organisé.",[39,1288,1289],{},"Le principe ? Plusieurs speakeuses et speakers passent devant le public dans un exercice d’improvisation :",[64,1291,1292,1295,1298],{},[67,1293,1294],{},"Un thème tiré au sort",[67,1296,1297],{},"Un sujet choisi par le public",[67,1299,1300],{},"Des slides imposées, qui n’ont aucun sens",[39,1302,1303],{},"C’était en tout cas un plaisir de voir Carmen Piciorus passer un entretien d’embauche pour devenir gardienne de nains de jardin, et Tim Carry nous pitcher son nouveau film “La revanche des cacahuètes”. Un moment amusant qui clôture une matinée aux petits oignons au DevFest Lyon !",[39,1305,1306],{},"Il est temps ensuite d’attaquer un après-midi qui s’avèrera tout aussi riche en enseignements et en échanges de qualité. Vous voulez en savoir plus ?",[39,1308,1309],{},"Guettez ce blog, j’ai entendu dire qu’un second article était en préparation…",{"title":277,"searchDepth":278,"depth":278,"links":1311},[1312,1313,1314,1315,1316],{"id":917,"depth":283,"text":918},{"id":995,"depth":283,"text":996},{"id":1127,"depth":283,"text":1128},{"id":1182,"depth":283,"text":1183},{"id":1282,"depth":283,"text":1283},"2025-12-02T10:02:07.045Z","Une question que l’on me pose beaucoup en ce début de semaine. En effet, vendredi 28 novembre 2025, nous avons eu la chance, avec plusieurs collègues de HoppR, de faire partie des 250 participants de ",{},"\u002Fblogs\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon",[1322,1324,1326,1328],{"id":16,"name":17,"image":1323,"linkedin":19,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F53946b9e-3bb9-45bd-a8b4-429c51156179\u002FT04PC176TGB-U05EW3YF61Z-5e129f612df3-512.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466Y7KSVBHC%2F20251202%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251202T100206Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEoaCXVzLXdlc3QtMiJHMEUCIQDlPhoO6t9yJQoUoZw%2FLTwJI5MC%2Foym8X1E%2Bg6KJ%2BiFgwIgalDq7jA%2BP85pFMTva72lsMaql%2B9LjtYqLDQH3dgn1M0q%2FwMIExAAGgw2Mzc0MjMxODM4MDUiDNOvwSwCkwWPXxfr2CrcA8769%2FoIXsCvhgFS4Dv2as%2FMadMS7wa5TlBrAZ7cnJv7%2BruPZECofduiEAoBV9ATh622gA0pQ231dPxprnYq6SLobx%2FEXgHUroXG3Hqn%2ByV4BZcmFzpgks2HcaAcuaHoAxQhO%2FJOFl%2FDUsk7u2C%2F03ZHWHalr4QFq8HF2kBEzUf5y9Z7lCS23wHUe9yrlp6dnDaMZv7ctg37nRsZ5cPFFyP%2Bi6DvsRbv4jk7ZR4d1uGo%2FyGh6TxAtZ6bjsPYjOKjZ8cDFQubPif7rBAfK8Gu2lMBuI8Cpd1qw32YzUj4dprm8t1R1SUxs4t9d3SmZ415ZoYHufTwtLVK2sMPIP1y2pVCL5TQxoCQIeZknhH6tf7lN%2BJs7CiIk9lolBqdAUPcwZ3F%2F5Fp4IC63yn6syo0RgnVB8MqfB%2BSgFz%2BdmhDCDcQ%2B54ndcErvY2ae44aPLzBYI6haQ8DpNzmYS6KvY3lcnCqKPTRx2M6%2BTlHpOEeq7CbpF%2FYsMtskDgQyVVqQRGZJJ98f4naA%2F8A41AIqXTDNAK8ifTyOLNOa8pF%2BGwiNsbrbjT%2F4qhB43PK%2FjzXCKtb8czB7vQydYQ0mjlSkxtXFecZ5qOzQIYc%2BJI%2BNhPsJoCLRKw3sr9EwLqY5d6NMJrvuskGOqUBkmJA1855ur4UyoLjGj1WPfKYtvmOStTXYnAk6EEA5p4DMsWp%2FtC79u340iUu7rojNw3oS3XeDN7pdCo%2FZMsMGkduaNvN3RB3crutakC38cpYKKo8%2Fg1VYP9a5GzXDfesiZ4RzRQIMUhkFjYbvPnQiOxmXU%2FxTyvR57RMWG7ApufvcgZqmTQgxzACj5uuwFn8iXfklA7WVG0WqI3CseqOO%2F7ssBqz&X-Amz-Signature=0f9dedf66c69728d181b86c075540248b1da9d52cb45a0d9b21654912eac01eb&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"id":295,"name":296,"image":1325,"linkedin":298,"x":299},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc69d0b59-558d-4e48-879f-bea3fec1fdef\u002FLinkedin_Profile.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466QRTGLWHL%2F20251202%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251202T100206Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEkaCXVzLXdlc3QtMiJHMEUCIQDm4%2F0Wbjn1yhS08yXFNJ3YxNfXhqedQ1Ibi1ixjAZwQAIgfOCHgnZEctCvQodF01gw3q43a2oTC9uvnFD5rnVsxQkq%2FwMIEhAAGgw2Mzc0MjMxODM4MDUiDEGDfT3DvHNF4e0%2F1ircA%2BMNtVAYwDGaDc4cTMBzN4fvTjoy2vcW6lqQwt0fckDmqFnu4KACIzQS0IBnqRuEKVrwHDf462itGMt45GGMFgrJ%2FwZjcEXN7mqtsDnO6Okzrr8o2cez6enA7ugl2qQa1K9n00YRnX6S9YbDBhvJk4%2Fob8H1RM5f3g%2FWZ0DE%2Bw4ZQtTkqyzk9cmEFnZj9PgP3P5JJ6%2B1XC6y4hKPodsLFwdB%2FiWv93l%2BIQJvtA7Pmzf7MEsf%2Fjfo9lBKh96v0muhHM%2BOW3HziW%2B2%2F43PzDRq0fLk5PEHcyDk0ir6a0d1SE54JtxwNCQ2r4c9kr2U4QPmDgplyC0rvhlk1MkY8KQW%2BbKHW%2B7bDhIIUZKx6blcBvvnsHF8SxMYxMaKSuOigd8%2FfKtXdYhUIv5kl4a4pjX8%2Btgg4E1FEgXY6OOSuvWlAlKEOS1TLV5Mm9BxvLdM6lCaoPeD%2BwjBRBe3QsEal0tM8%2FoPZzY6qjoajqvXvfL6LVwme461vj52ccT9xnaR2bRChgs%2BU8ucdg320zC3PiGEn55r19XsS2syF4KKPQ2ZqotsOp8ddRvwjdUs2yeIjMi8MfSSklsKTRnqzGITcKfg9UPQ%2FkmP4ZIfFJ9BAEug3TroU6elUhH%2FX99VHkbdMJnQuskGOqUBDw6lrXPYCboisCRNK3rSof7RUE8dcfUUhSnHXeQhFy%2Bxtswny8NKyhzu2f3axx%2B8BAWeqnJLi9juYMoEcyH57Z1OlduE9j4c8XNeb5S5QGuPgL2eFFm2Q6A2%2B1%2Bx%2B%2FWc9u8KRHsPWxmnH%2FDvGCo%2B5NAwT2Z59tSaAy4WLaU69x7pOXJw2GLcmvqj7GY8t1wWC%2BgZmvjgT5pr7JoAqMyCTlqWW0p8&X-Amz-Signature=c4e986c0dead60c4b87052795a3446cf2dc94d9ffdea6f9da0065c64e12d46b3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"id":10,"name":11,"image":1327,"linkedin":13,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Ff8f82a79-9d41-4302-b1a5-37882985167f\u002Fnicoz_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB4664RUX22IJ%2F20251202%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251202T100206Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEoaCXVzLXdlc3QtMiJIMEYCIQC2nkVt1TGIZcU4J2cW%2BwnOm%2FJYMKPRvr9QoJI0ln9rtAIhAMbp5av2Mva0lC3zvk9RTnOZcfJVPe3y49DPXDto73qKKv8DCBMQABoMNjM3NDIzMTgzODA1IgxWonWoO8Q%2F6Tb5h5wq3APC9x01ntajt7LgXx2%2F6oWSdtYAHetuavmLKHuZBE4qZkUxVZlNf8yev7okfjbHkNTEZGT9ewi71Ep6%2Fj7OgQALj8WCrQ0NStHtOAGlQxjSBldfbVhSqpD%2FcKXOxmZe78PH9Bah3KKZgd%2Fzq1QZxCFIUp9YdjF%2FbL9yDF32Qffz6s4hE2xPX%2BIWXiLgy%2FoAHqyuuF9yLOJGFULNae1K0SpX%2BUPc9bGDrF5eqmdZEagZw3NdTYVzpYNJeJjDdTA2wSH9V3zloZQUllFmA2FapNJ7m43SbD5crno2TvsppP%2FIZwtcKkbyYQ1dIu9yUkQcP0YtKL5HESyEHe2wZ%2Fh8ySECV5JLqJ612Tq%2FjQ4WG5IRA3LnmsLqVwlkmclF9qqhCLkr1raV9rxA49bzA9HTJlJbbx9W2IJ%2B1NF9k%2Ba4%2FgPg%2BBKeMMHbVVxnzJVULzJY3wX5CMRMW%2Bsb5j4idcJB9stl3D4taE42iOp%2FRdjAS0hnlyNzgN9wrV0exYYd5KhJjI4Q%2FULsOOo7qA%2B4HsqdYL36zkfJN6T%2BvjrzVG%2FjxzTNwUrTVKwzOHom2lkGd%2BX8KE1Cq3Xx%2FmRIx1Qdp3ua8xccBoGHYsEItydyKDT%2FvmhS8VqeCS3Mf719fVMjDTCT8LrJBjqkAfQTGT%2Fs9MjD6z%2BwJvaGpYM%2F%2Fj7dc8MdLQBOe1TXVGUugJIFO3k9RJBOnpGAcJ8iORYMTxNiQmlpchi%2FeJ%2FloxMKo9KLYsP51i8IawGdvOfcd7gPws3WPQglaWdiRbMl%2BsIKoY3ltOxuyzwHnFe3odYH9Jk7H15EvVy4X7KZns8dNnyZMF19aidySWh55J%2Byb%2BSI0fDuPaOd75%2BN97EwLFgvXSKB&X-Amz-Signature=10f2e76341a5b95b387a7537285d41aa5d73f789611b6e3f7291d5e48bf31b7f&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"id":301,"name":302,"image":1329,"linkedin":304,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc88f5dfa-16db-4e6f-acf1-34dd80ee8766\u002Femma_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466Y3X2BERO%2F20251202%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251202T100206Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEoaCXVzLXdlc3QtMiJHMEUCIHRw%2FuSZy28SiwpPOCs76n11i%2F1NJe6CZ%2BsRL3AWO%2B2fAiEA4vhBhGzEMfJI4snF1OloxuWCCMbRf1PDwUR5mDJ9XhMq%2FwMIExAAGgw2Mzc0MjMxODM4MDUiDFG70SUdJEiGKkM5bSrcAw9rPmsJGzwqShqiv0%2BeWtdSAO1vDBF77Pr3fo57wA6onGBTD13Mb6SFRhQ9%2Fra6mwI6ViUxzjAKm12NSy5iUxqlpE7OCeRIo9Anm1I3%2BeCrcf9sgDbmjO9%2Fq0CVRI%2FU5IZdPCJ33TU8DMeMHEqWABPbQu2JgRA08oGE7VhNIyxEibEDVBt2efeb9Lo5jxMEz%2FWlDtk3PoQhL%2FLS5Z%2F3VJ46ZG%2FjmqYw0w7eL3RTXvpO3F8ba8FwLP%2BPox3DLRsE%2Bb7RZip03wWeSyGpIyQrk%2Fk%2F5G3jj7VUUplHpHhT5D1Wqy5cXNWNlTczPw5oVN2IUc50L5iFv5LS4fAd8pFkfN62EjccKbWW0KnK539jxa9NktNFfLvcYD%2F6vLcDNwyfQgGP8yceEsSpjcPO0qHzchwhu3DNi7CIZe6US62dUslZUaUrSBMOsmUn%2B9ddPbtRSMqOY%2Bm%2FtLRJg%2FViOt1WXTF3IbqHZ4NJdCtZACK05FQhMzGqqH2dD2ItGI4Omx34fVPkSaT9o4dYKTix8VDrwD5EhMNmYrjOp7D%2BV8xhKoDoiW8JlW1VuSG6lVBEwLYkuwaHxUACflNG8bSl2YauKHvUTet%2FfaANzQSi%2F9UCf9y%2FPrn5IcGO2wdGGRxoMO%2FvuskGOqUBkceK1DQegSzZ4IUtEx%2B4PllbY2t6tdvBH15yyh4%2B%2FGCAcS9vea00xBAgUT4sC5YvyzMBR5INtwcv8At2vEauvXRTSiRU%2B5v13rmi1RpZpgRNRpspuzp4m9IRPeludo%2B%2FPgFsi%2FJ5dUfWIr1kzF%2F6ElvWLADEI9Chpz%2BvdUDbn%2F6ysbTgkF%2F8X4vIJraEEIdfrTio7kDfiOb%2BelfK7YochB5tFNJG&X-Amz-Signature=48a8f72788c038f6fc6755f0a2dd5a263a644eb8957eb8922c1068162f4056db&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"title":868,"description":1318},"blogs\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Findex",[863,1333,309,1334,308],"ia","2025","rjrMPgsADjoad7R2LQZrtdGd8zJ-49_LHYef8RpPoUc",{"id":1337,"title":1338,"alt":1339,"authors":1340,"body":1348,"date":1645,"description":1646,"extension":288,"image":289,"meta":1647,"navigation":291,"ogImage":289,"path":1648,"published":291,"reviewers":1649,"seo":1658,"stem":1659,"tags":1660,"__hash__":1664},"blogs\u002Fblogs\u002F2025-12-23-alors-ctait-comment-ce-premier-devfest-lyon-la-suite\u002Findex.md","Alors ? C’était comment ce premier DevFest Lyon ? (la suite)","L’équipe HoppR au Devfest lyon",[1341,1343],{"id":295,"name":296,"image":1342,"linkedin":298,"x":299},".\u002Fassets\u002Fauthor-maxime-deroullers.webp",{"id":1344,"name":1345,"image":1346,"linkedin":1347,"x":14},"2c0f4462-cd38-80e0-8142-c3de50d521c1","Anaïs Cousin",".\u002Fassets\u002Fauthor-anas-cousin.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fana%C3%AFscousin\u002F",{"type":31,"value":1349,"toc":1640},[1350,1363,1369,1376,1382,1387,1392,1397,1403,1418,1425,1442,1448,1458,1461,1481,1484,1487,1490,1494,1501,1507,1510,1513,1526,1530,1533,1536,1546,1550,1553,1556,1560,1573,1576,1582,1588,1591,1598,1605,1618,1621,1624,1635],[39,1351,1352,1353,1358,1359,1362],{},"Pour faire suite à ",[139,1354,1357],{"href":1355,"rel":1356},"https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon",[143],"l’article de Michaël"," sur la très bonne première édition du ",[139,1360,882],{"href":880,"rel":1361},[143],", nous vous présentons deux autres talks auxquels nous avons pu assister et qui nous ont marqué.",[56,1364,1366],{"id":1365},"chaos-monkey-et-si-netflix-révolutionnait-aussi-la-résilience-de-vos-applications",[668,1367,1368],{},"Chaos Monkey : et si Netflix révolutionnait aussi la résilience de vos applications ?",[39,1370,1371],{},[672,1372,1373],{},[668,1374,1375],{},"Écrit par Anaïs",[39,1377,1378],{},[45,1379],{"alt":1380,"src":1381},"Illustration style synthwave aux néons violets montrant un singe holographique débranchant un câble serveur, ouvrant une faille numérique glitchée. Au premier plan, des ingénieurs surveillent calmement la situation, protégés par un bouclier énergétique bleu. Titre : CHAOS MONKEY.","\u002Fcontent-assets\u002F2025-12-23-alors-ctait-comment-ce-premier-devfest-lyon-la-suite\u002Fassets\u002Fimg1.webp",[39,1383,1384],{},[672,1385,1386],{},"En ce début décembre 2025, impossible d’y échapper : la sortie de la saison 5 de Stranger Things fait vibrer les réseaux.",[39,1388,1389],{},[672,1390,1391],{},"Mais saviez-vous que Netflix, en plus de captiver des millions de spectateurs, a aussi révolutionné la façon dont on teste la robustesse des applications ?",[39,1393,1394],{},[672,1395,1396],{},"Rencontre avec le Chaos Monkey, un outil né dans les coulisses du géant du streaming, et qui pourrait bien sauver votre infrastructure du prochain “Démogorgon” technologique…",[101,1398,1400],{"id":1399},"quand-netflix-inspire-la-résilience-it",[668,1401,1402],{},"Quand Netflix inspire la résilience IT",[39,1404,1405,675,1408,675,1415],{},[668,1406,1407],{},"Lors du DevFest Lyon 2025,",[139,1409,1412],{"href":1410,"rel":1411},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Ferwan-le-tutour\u002F",[143],[668,1413,1414],{},"Erwan Le Tutour",[668,1416,1417],{},"a présenté le Chaos Engineering, une pratique inspirée de Netflix.",[39,1419,1420,1421,1424],{},"L’idée ? ",[668,1422,1423],{},"Provoquer des pannes contrôlées"," (coupures réseau, latences, arrêts de serveurs) pour détecter les faiblesses d’un système avant qu’elles ne deviennent critiques.",[39,1426,1427,1428,1431,1432,1435,1436,1441],{},"À l’origine, Netflix utilisait le ",[668,1429,1430],{},"Chaos Monkey",", un outil interne pour tester la résilience de son infrastructure de production face à des millions de requêtes. Aujourd’hui, des solutions comme le ",[668,1433,1434],{},"Chaos Monkey for Spring Boot"," permettent à tous les développeurs d’intégrer cette approche, en simulant des scénarios chaotiques pour renforcer leurs applications. (",[139,1437,1440],{"href":1438,"rel":1439},"https:\u002F\u002Fjavaoperatorsdk.io\u002Fdocs\u002F",[143],"Cliquez ici",", pour les curieux!)",[101,1443,1445],{"id":1444},"pourquoi-adopter-le-chaos-engineering",[668,1446,1447],{},"Pourquoi adopter le Chaos Engineering ?",[39,1449,1450,1451,1454,1455,563],{},"Les systèmes modernes sont de plus en plus complexes, distribués et interconnectés. Dans ce contexte, la question n’est plus ",[672,1452,1453],{},"si"," une panne va survenir, mais ",[672,1456,1457],{},"quand",[39,1459,1460],{},"Le Chaos Engineering permet de :",[64,1462,1463,1469,1475],{},[67,1464,1465,1468],{},[668,1466,1467],{},"Détecter les points de fragilité"," avant qu’ils n’impactent les utilisateurs.",[67,1470,1471,1474],{},[668,1472,1473],{},"Améliorer la réactivité"," des équipes en situation de crise.",[67,1476,1477,1480],{},[668,1478,1479],{},"Renforcer la confiance"," dans l’infrastructure, même face à l’inattendu.",[39,1482,1483],{},"Malheureusement personne n’est à l’abri, comme l’attestent les événements récents (AWS\u002FCloudfare)",[39,1485,1486],{},"Alors, prêt à lâcher un Chaos Monkey dans votre environnement pour en tester la solidité ? 🐒💥",[39,1488,1489],{},"Pour conclure cet article : bien moins technique que l’excellent article de Michael (et que celui qui arrive juste après !), ce retour reflète surtout mon regard côté business. Même si je ne suis pas développeuse, c’est justement ce genre de conférences qui me permet de mieux comprendre les enjeux tech du quotidien de mes collègues.",[56,1491,1493],{"id":1492},"développer-un-opérateur-kubernetes-en-java-challenge-accepted","Développer un opérateur Kubernetes en Java : Challenge Accepted !",[39,1495,1496],{},[672,1497,1498],{},[668,1499,1500],{},"Écrit par Maxime",[39,1502,1503],{},[45,1504],{"alt":1505,"src":1506},"Illustration isométrique style tech-fantasy. Une développeuse injecte une énergie lumineuse orange, générée par du code Java et Quarkus, dans une machine Kubernetes géante en forme de gouvernail qui organise des conteneurs logiciels. Au sol, un panneau 'GO LANGUAGE ONLY ZONE' est brisé. Le titre en haut indique : 'JAVA OPERATOR: CHALLENGE ACCEPTED","\u002Fcontent-assets\u002F2025-12-23-alors-ctait-comment-ce-premier-devfest-lyon-la-suite\u002Fassets\u002Fimg2.webp",[39,1508,1509],{},"Si vous travaillez dans l'écosystème Cloud Native, vous avez forcément ressenti cette pression implicite : pour faire du Kubernetes sérieusement, il faut faire du Go. C'est le langage de l'orchestrateur, c'est le langage de la plupart des outils, et par extension, on finit par croire que c'est le seul choix viable pour étendre son cluster.",[39,1511,1512],{},"J'ai assisté à une conférence qui tord le cou à cette idée reçue, et je pense qu'elle mérite votre attention si votre équipe est majoritairement composée de développeurs Java.",[39,1514,1515,1516,1519,1520,1525],{},"Dans son talk ",[668,1517,1518],{},"\"Développer un opérateur Kubernetes en Java, challenge accepted !\"",", ",[139,1521,1524],{"href":1522,"rel":1523},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fphilippartstephane\u002F?originalSubdomain=fr",[143],"Stéphane Phillipart"," s'attaque à un sujet souvent intimidant : les Opérateurs.",[101,1527,1529],{"id":1528},"pourquoi-ce-talk-est-important","Pourquoi ce talk est important",[39,1531,1532],{},"Pour rappel, un opérateur est ce qui permet d'automatiser la gestion d'applications complexes dans Kubernetes. Jusqu'à récemment, la documentation et les exemples étaient quasi exclusivement en Go. Pour une équipe Java, cela voulait dire : apprendre un nouveau langage et une nouvelle toolchain juste pour écrire de l'outillage.",[39,1534,1535],{},"Ce que Stéphane démontre brillamment, c'est que cette barrière n'a plus lieu d'être.",[39,1537,1538,1539,1545],{},"Le cœur de sa présentation repose sur le ",[139,1540,1542],{"href":1438,"rel":1541},[143],[668,1543,1544],{},"Java Operator SDK",". Loin d'être une solution de bricolage, il montre que l'outillage est désormais mature. Ce que j'ai particulièrement apprécié dans sa démarche, c'est le pragmatisme. Il ne s'agit pas de faire du Java pour le plaisir de faire du Java, mais de capitaliser sur les compétences existantes des équipes. Pourquoi forcer des experts JVM à écrire du Go médiocre alors qu'ils pourraient écrire du code Java robuste et testable ?",[101,1547,1549],{"id":1548},"de-la-théorie-au-code","De la théorie au code",[39,1551,1552],{},"La conférence n'est pas qu'une suite de slides théoriques. On passe rapidement au concret avec du live coding. On y voit la création d'un opérateur, la gestion de la boucle de réconciliation (le cœur du réacteur de Kubernetes) et le déploiement.",[39,1554,1555],{},"Il aborde aussi implicitement un point qui fait souvent peur aux Ops : la lourdeur du Java. En combinant le SDK avec des frameworks modernes comme Quarkus (souvent utilisé pour la compilation native), on obtient des opérateurs légers, rapides au démarrage et peu gourmands en mémoire. L'argument de la performance du Go ne tient plus vraiment la route face au Java moderne.",[101,1557,1559],{"id":1558},"mon-avis","Mon avis",[39,1561,1562,1563,1568,1572],{},"Si vous êtes un développeur ou développeuse Java et que vous regardez Kubernetes comme une boîte noire réservée aux Ops ou aux développeurs Go, prenez une heure pour regarder ce talk disponible sur ",[139,1564,1567],{"href":1565,"rel":1566},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=1GUvH3zDsDA&pp=ygVDRMOpdmVsb3BwZXIgdW4gb3DDqXJhdGV1ciBLdWJlcm5ldGVzIGVuIEphdmEgOiBDaGFsbGVuZ2UgQWNjZXB0ZWQgIQ%3D%3D",[143],"Y",[139,1569,1571],{"href":1565,"rel":1570},[143],"ouTube"," via d’autres conférences.",[39,1574,1575],{},"Il dédramatise complètement le développement système sur Kubernetes. C'est une excellente ressource pour convaincre votre CTO ou votre Lead Tech qu'il est possible d'industrialiser vos déploiements sans changer toute votre stack technique.",[56,1577,1579],{"id":1578},"en-conclusion-linnovation-se-partage-surtout-au-devfest-lyon",[668,1580,1581],{},"En conclusion : l’innovation se partage, surtout au DevFest Lyon !",[39,1583,1584,1585],{},"Notre participation à cette première édition du DevFest Lyon a été une véritable source d’inspiration. Entre le Chaos Engineering, qui nous rappelle que la résilience se construit en osant tester nos limites, et la démonstration que Java a toute sa place dans l’écosystème Kubernetes, ces conférences ont confirmé une chose : ",[668,1586,1587],{},"l’innovation naît souvent là où on ne l’attend pas.",[39,1589,1590],{},"Chez HoppR, nous sommes convaincus que partager ces retours d’expérience, ces outils et ces bonnes pratiques est essentiel pour faire progresser toute la communauté tech.  C’est pourquoi nous avons mis en place une véritable culture de l'apprentissage continu.",[39,1592,1593,1594,1597],{},"En interne, cela se traduit par nos ",[668,1595,1596],{},"Maker Days"," : des journées dédiées où nos consultant.es sortent de la production pour tester de nouvelles technos (comme ce fameux Chaos Monkey !), prototyper ou approfondir des concepts complexes. C'est notre laboratoire R&D, et c'est ce qui permet à nos équipes de rester à la pointe.",[39,1599,1600,1601,1604],{},"Mais nous sommes convaincus que le savoir ne doit pas rester cloisonné. Nous avons donc transformé ces retours d’expérience et cette expertise terrain en un ",[668,1602,1603],{},"catalogue de formations concret et pragmatique",". Que vous soyez une entreprise cherchant à faire monter vos équipes en compétences ou un développeur avide d'apprendre, nous partageons ce que nous maîtrisons au quotidien.",[39,1606,1607,1610,1611],{},[668,1608,1609],{},"➡️"," ",[139,1612,1615],{"href":1613,"rel":1614},"https:\u002F\u002Fwww.hoppr.tech\u002Fformations-hoppr",[143],[668,1616,1617],{},"Découvrez nos programmes de formation HoppR",[39,1619,1620],{},"Alors, prêt à libérer votre propre Chaos Monkey ou à développer votre premier opérateur Kubernetes en Java ?",[39,1622,1623],{},"N’hésitez pas à nous faire part de vos retours, de vos questions, ou à nous rejoindre pour en discuter lors de nos prochains événements !",[39,1625,1626,675,1629,675,1632],{},[672,1627,1628],{},"Un grand merci à l’équipe du DevFest Lyon pour l’organisation de cet événement, et à tous",[672,1630,1631],{},"les speakeuses",[672,1633,1634],{},"et speakers pour leurs présentations inspirantes.",[39,1636,1637],{},[672,1638,1639],{},"À l’année prochaine pour de nouvelles découvertes !",{"title":277,"searchDepth":278,"depth":278,"links":1641},[1642,1643,1644],{"id":1365,"depth":283,"text":1368},{"id":1492,"depth":283,"text":1493},{"id":1578,"depth":283,"text":1581},"2025-12-23T16:39:49.164Z","Pour faire suite à [l’article de Michaël](https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon) sur la très bonne première édition du [DevFest Lyon](https:\u002F\u002Fdevfest.gdglyon.com\u002F)",{},"\u002Fblogs\u002F2025-12-23-alors-ctait-comment-ce-premier-devfest-lyon-la-suite",[1650,1652,1654,1656],{"id":16,"name":17,"image":1651,"linkedin":19,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F53946b9e-3bb9-45bd-a8b4-429c51156179\u002FT04PC176TGB-U05EW3YF61Z-5e129f612df3-512.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466W4AXLVRW%2F20251223%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251223T163948Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEYaCXVzLXdlc3QtMiJIMEYCIQDPnpGUn%2BqCpnFIqIGXJYm%2FKun2CwO%2FbkU43MWV3kn4ugIhAKSC4Vj6uKRG%2FQsbi35ldAUoJu3J%2BfVrpYehzOrAiUNdKv8DCA8QABoMNjM3NDIzMTgzODA1IgxYOnhHP8q1QNPcr9kq3AMQKG7RZkAyakc0hW8rdOKKYFwnri04Ycy4M2kPAP1zxZ4OAygqjWbe5fUytfCr%2BvqFCtuuoAh%2FbrIdduFm7FspNBpBTD%2BtJ1U%2BsU0c4maBvii7Kazur7y0ZrkYDtKZBHlzsP6KVQEJkFjZM8MPFQ0IxZl8u6eXEX1ZYAzbb91vpaJyFhh8sWhIrxK1QYnSFhNdlyLgl5sc7vN1zipqTj%2BFModWCOhTUuK5lHOKbyHB4ErulD8RKgspA%2BHz1b1ePM4vmEDt5EzjW%2BbY%2FOqQJp%2BiT9gERS0fRhn%2BSmYSZcUyZw8FzLUU9AuZTL%2BxABNx4A0sPjzHfHEX08Ck66%2F0B%2BlE1Sj1qoJlCM2mQXR9RU1eK1BnHDGMYy41HASbHKLetFPo7zXFk2AW6RAgAiXbvvoAl8NKrqJ4tscKivfT8nremJsHxemWNDgZaPf2Holdx8LHwV7CqfZ9j%2FLTf4q2vsbSqKN5ctxe9evJFapDOjU%2B6fdlyLXYrd9Cgu0I7qTXQID2Wk51QMsMwdAkPkS2QTf2xYgjfWgfsbXtv5NBJIycrJL4rkwNRs03UUD3XgWyEQQ67F6fiTsm3GaXnKaCMrnXZCiwd6eXFE%2F9TTJqMvQRjcNh7TkiqdIMjHa%2FXDC8vqrKBjqkASyWZD3FD4b6CgVchADndQ37fY59BuPUOM8%2F83rNgyLCA%2FyItYB9bNyO%2FbGgmW6WbFlgmFdTlSAzP8t6u%2FDNfHvn2PTWp7FSjnRRK6FvFKQSQvIk%2B1EzEkJEYDg0%2BzmmUrSZsXbpKC77QuqQ0klW5aDR6GIu9P8Fti6rjXrRPRCeWDn9C4fz24VI%2FjrKLMnlgdyipLMinNsSvlyrdGnWWDN4K%2Fmz&X-Amz-Signature=4e276c2fda930baf8991e7206d80c6d9d9dcab8f47c8bfc8fbb35bd93848d9b0&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"id":301,"name":302,"image":1653,"linkedin":304,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc88f5dfa-16db-4e6f-acf1-34dd80ee8766\u002Femma_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB4666XAIVRTN%2F20251223%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251223T163948Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEYaCXVzLXdlc3QtMiJGMEQCIEnuOAJUf2Rshe07mNIw0LrH9EpjYKRzEhhhnrv%2FiJL4AiBlBMKpY%2BOuKCkAtBj%2BuA5fIcjRdGBpguWngb9qHAq69ir%2FAwgPEAAaDDYzNzQyMzE4MzgwNSIM5Sf9fQcuCCRMo963KtwDVI0FP8okepoMVcy8fPdIC1JVqsKcYxvSllUIDvz3bVWZyIW0CCsx59p7dp3inN6GnbfUaJNtn9BElzJK9dBwcKzFutAx6xV8tE4s25a0VG1INlhJzwOGq%2FtE%2BGc3zl8WGZe2Mf4erdDFjsM20auMlhExfMB3fNlppYb%2Bs15wgKr%2BNmZzRN55ci65DlKR6OU6b%2F9n0NoODE5pGo1clLXMsbss5U51C1ROHUVJsZR6ZwY1Hqqwrq1Y722xXQzAetGDsdXGoFpiwmcWIJlEAldVpiCWgArYhi54vWNWjQVOgNjVsHl2gSl4dBoju%2FkNl3ijqRJlat0d3D1tVkAdsb2iRZiElHexwcVQlpx1qHeIXq0Rd5j0DQuvyAxj1ktuh92xWZNcM91W%2BfP2Gk3qNR1d0Olnw4i7R0rKQvEuDlDuWG6578afo7v1s125krKupL6nTUetdKU%2Fz3QXrmlrj7SZEXPhqZ%2FmvqLO7HFOOaFiFuqirixmhAW6Ha2pa5D5VHZKHsPVFT91xXNElJpOADSpSAhvZvcLjE94rK%2FF2NyvjxGS8lDyV7rS39WJ8VSq1A04RzYphSEYF3L21W2tBaGc5VIhyLpBB3V5YtrIHO6C3UwfwDPGb3MviRw8JxYwwb6qygY6pgG2MUSsukjvYCzXqgwgHF5KhJIkGs28W7phlzQm0icRuywpO2S%2BzHPuOOV9WIrq0hlzmQP5RkkImvr2533TECOiLPDi5t7k0SsXZ8q48g%2ByWx36uxniARZ7uhReOOjy1vYTRG6PhGEAffVnypy0YyJCo5zb8b0%2F%2F4fSj1OY3fvqxDa14rEJpgRHpvLQsMYtOA1JVm8RSta8mAivuf%2FFrabCN%2FfL4q%2FA&X-Amz-Signature=4a14b9fbd70617e2be2d0878b3392f914e0c912c875fe99c8fb653d2e132cb87&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"id":622,"name":623,"image":1655,"linkedin":625,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F82ebd0fe-de28-43f3-ab7b-0431af41baad\u002FPhoto_HoppR.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466TGENWUUW%2F20251223%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251223T163949Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEYaCXVzLXdlc3QtMiJHMEUCIQDdbYlpqTUS3MHKXr294zzRuZ5yQznmEEbKsUbTKHxKwwIgbaNEO5L%2BsbyYJWP%2BXSsrT6p%2BQ8JHG5pVRE67vmA2SQQq%2FwMIDxAAGgw2Mzc0MjMxODM4MDUiDHyZQznaVyJGBMnPMSrcA0AqnPpDZeHzIFm5ctGDLP6MMk9oxka5WD9HcgCfxZhpbpJZbrvuspt8g8kWPyEBYVMJvTO7SMJvEQysNwGHm%2BlX%2FEgaKTzcPATTKFxtom8WP4YyTOHAhXYmV1PU43kUU32KZXQfDXeglBzNR3Nn7xxx0ewP82r02pcSdwkyQamIQ%2FfcqRDZ2nVtKi1Ghl%2B3dJ07BjYVe3frTc%2FxwqQxG6w%2FTisKdoxeAkplW8GRC8l6K6nmLOjpD%2F4dDthsFKvqOXI6z8NO3AwEjYO2wf6DoJD28PLSPtgaPDCSCdLULjlmWZMMeEXLYkSx5I6YCRXvl30uzPsia2pxCwag352B8aTcMNE3cN2nqmTmBTXJvYkau%2Fp0PBBObSgbHWqB3rlxe0VV%2Bf5lrWQiILnkMviSOf1b00LcSqoX8VSwYJKJWikH3Awrr5FPMZnOq%2F%2Bqyxm58Ibxb83hZT6JKIl8rbSBRfN%2F7K01krEffQv1xu5DhA91VlC15uwvFFdxGIKAVi%2Bt5sZh%2BXoIhQdKCX0U1fQ%2BL9q6%2BRfzsT4eERWe655piTwoSQQYWMNoeJxImF3zMS1b4D%2FUbQLUtxR7w%2Bomf1r4X76m%2FB3VM6UAgJl76pfHcDEuVCgUDx2GyNC2uh4TMMK%2BqsoGOqUBRe1GhYU7oRbpaObDN69zVFXh9zQjmAm0804TLzpDIlGwFgPAydmy7uAcmDHynkOrYrpo0Y5ejB%2BkSddGXtGWMX0Cj40u7CcS6D37%2FYAMOIX0VfQOOPPnVnrkS%2FgTKzvD%2BaL4ZUXQ3ePH9ueM4VgxnVBwkz6aglCUz4u11Pw6SAUQIz69Wb2I5OqdCd1JZZADIlBO8y1jb8TYV8HqLOVgk1%2F2HZR9&X-Amz-Signature=d2dfeaa7ca1b4ff8a41b6ed6783f396a5513ed9173bf5e9026a3a283f6ab1e2c&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"id":10,"name":11,"image":1657,"linkedin":13,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Ff8f82a79-9d41-4302-b1a5-37882985167f\u002Fnicoz_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466QHSO5NSN%2F20251223%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251223T163948Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEYaCXVzLXdlc3QtMiJIMEYCIQDZnNiqwJP6%2BrX28Xzb2IJ0%2BVzaXNFUsPrqaZ967PZU%2FAIhANKWFV8toBQHdFYmnBVpBY4jP3vcGA5lFDozIUegTgfPKv8DCA8QABoMNjM3NDIzMTgzODA1IgzOsYpSA9QgtStzyKwq3AO0cbAzyrq%2FgkP18Y5TYaN1DJ1%2BFkrZMK1xm%2FASjOCnPbi1LJ%2FH6%2FxIKnUv%2FvjGKTd%2F1j17x7%2FA1XLAFyuPUd6GAdq%2Bm8vIyOTBiFyMuiIkxu4aqACChZmQDqI2ZuR1t1IokTUq2gTo5%2BALvQREnMT%2BDPTHFQkOTrsUSiyoZr6Otv5VQQL6H8eRHzZrOA5XvB75Gm9rCI1HZiig7AhHrsQ%2F%2FLBcVEPKvj7l9Vy%2FlGQ3iby4BcvzTHPD6cdLiqpyz3951P9JJsB%2FLY7QGu8CNaVtajNVRG%2BuVBKGG9DQNmASGjQ1RyizEFZtq%2F2s%2FtaqWBbGnjep9ApfglIkqyP2NwFn5zsKZVMpuC7N586lYjrQxgXCXjZt5%2BMU2SAgLyJL7zK9XD75ylVTkjJw1YBcnKjj%2BFS3iW6NpKcS0b62gjVjxQ1XFFmo5B%2BWnQCpiHa5Yn3aXFLk%2BZd4mNEB6X28YtYAxOzI1KTFMKCAENTvevFyW3xet5JSqFD%2B1eOVaJSSZray6a4jyo7DxGJgM4s6qtWYzZ%2F1%2BIUMaaE1nHGcX%2Bu5e7cdPTn39ofxY4xbtB9dzP7dTbViLUzgD2gEF0QGHCuIWexj4OfzvdoL0sbh5TyJKy2B8GLvb1C1ujt4CTCtvqrKBjqkASM8jkG%2BtIFYSWk8zpbN06aWBful2xBsKkm%2F5SMLnIs%2FScsfD5Ruqrq1%2F8DigO%2FRod2MlWhKFp9DI%2B8ea9E9HltSm6z6zC4bAQei6ZShQ8hodi3Ymx8vAWaBRznJC%2FxYlBp%2FL5wamxFNqlynpFieFzeDeqsSVdvVc7Ws7GIWk7tkT1fF0auFTQpIXwQhrS1qo7N7msdyjg1APpk%2Bt4ahP60bBKN3&X-Amz-Signature=d020731e6a1b744c7006df2f027f9ab49a03c5bb0efdbb6d5d8760772cb23471&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"title":1338,"description":1646},"blogs\u002F2025-12-23-alors-ctait-comment-ce-premier-devfest-lyon-la-suite\u002Findex",[1661,310,309,1334,1662,1663,308],"kubernetes","java","cloud-platform","-EXGYmZLwhXuqzGO6NvbPo-sGl2PL38fD0sw9WVnZrA",{"id":1666,"title":1667,"alt":1668,"authors":1669,"body":1677,"date":2134,"description":2135,"extension":288,"image":289,"meta":2136,"navigation":291,"ogImage":289,"path":2137,"published":291,"reviewers":2138,"seo":2141,"stem":2142,"tags":2143,"__hash__":2145},"blogs\u002Fblogs\u002F2026-01-14-devbox-ou-comment-enfin-onboarder-un-dev-en-5min-chrono-sur-son-projet\u002Findex.md","Devbox, ou comment (enfin) onboarder un dev en 5min chrono sur son projet","Caisse à outils futuriste \"DEVBOX\" d'où émanent des outils virtuels et des logos de langages de programmation, posée sur un établi technologique avec un cube Docker lumineux.",[1670,1675,1676],{"id":1671,"name":1672,"image":1673,"linkedin":1674,"x":14},"45c76823-ab7d-4c1f-84b3-0bad16ab91e1","Paul-Alexandre Chrétien",".\u002Fassets\u002Fauthor-paul-alexandre-chrtien.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fpaulalexandrechretien\u002F",{"id":16,"name":17,"image":18,"linkedin":19,"x":14},{"id":295,"name":296,"image":1342,"linkedin":298,"x":299},{"type":31,"value":1678,"toc":2127},[1679,1684,1687,1690,1696,1701,1719,1722,1725,1739,1743,1753,1756,1762,1772,1798,1801,1815,1819,1822,1825,1846,1849,1853,1856,1877,1881,1884,1905,1909,1912,1924,1927,1934,1937,1945,1949,1952,1955,1987,1993,1996,1999,2005,2049,2052,2116,2120,2123],[39,1680,1681],{},[668,1682,1683],{},"Le scénario est un classique du film d'horreur en entreprise.",[39,1685,1686],{},"C'est le \"Day 1\" d'un nouveau développeur. Il est motivé, son café est chaud, sa machine est prête. On lui donne l'accès au repo. Il clone. Il lance le projet.",[39,1688,1689],{},"Et là, le drame :",[39,1691,1692,1693],{},"🔴 ",[672,1694,1695],{},"Error: Node version 18.x required (found 14.x).",[39,1697,1692,1698],{},[672,1699,1700],{},"Error: libssl.so.1.1: cannot open shared object file.",[39,1702,1703,1704,1708,1709,1519,1712,1519,1715,1718],{},"S'ensuivent deux jours de \"bricolage\". On modifie le ",[1705,1706,1707],"code",{},".zshrc",", on installe ",[1705,1710,1711],{},"nvm",[1705,1713,1714],{},"jenv",[1705,1716,1717],{},"pyenv",", on casse la config d'un autre projet... Le fameux \"purgatoire de l'environnement local\".",[39,1720,1721],{},"L'onboarding ne devrait pas être une cérémonie mystique. En 2026 ça devrait être un simple script. Surtout si l’on rapporte cela à l’échelle du nombre de développeurs et consultants avec une moyenne (ambitieuse) de 2 ou 3 jours à chaque démarrage. Que de temps perdu !",[39,1723,1724],{},"Et si le fichier de configuration de votre projet suffisait à installer tous les outils, sans la lourdeur de Docker ?",[39,1726,1727,1728,675,1735,1738],{},"C'est la promesse de ",[139,1729,1732],{"href":1730,"rel":1731},"https:\u002F\u002Fwww.jetify.com\u002Fdevbox",[143],[668,1733,1734],{},"DevBox",[668,1736,1737],{},": une boîte à outils en ligne de commande qui transforme un simple fichier de configuration en un environnement de développement complet, isolé et natif.","  Lancé en 2022 par l'entreprise Jetify, le projet open-source connaît une adoption rapide et cumule déjà plus de 11K étoiles sur GitHub.",[56,1740,1742],{"id":1741},"devbox-la-puissance-de-nix-sans-la-douleur","DevBox : La puissance de Nix, sans la douleur",[39,1744,1745,1746,563],{},"Pour comprendre l'intérêt de DevBox, il faut d'abord saluer le moteur qui tourne en dessous : ",[139,1747,1750],{"href":1748,"rel":1749},"https:\u002F\u002Fnixos.org\u002F",[143],[668,1751,1752],{},"Nix",[39,1754,1755],{},"Nix est le Saint Graal de la gestion de paquets : il est purement fonctionnel, immuable et garantit qu'un paquet installé aujourd'hui sera identique au bit près dans 10 ans.",[39,1757,1758,1761],{},[668,1759,1760],{},"Le problème ?"," Nix est notoirement difficile à apprendre. Il demande de maîtriser un langage de configuration complexe et verbeux. C'est souvent un frein rédhibitoire pour les équipes qui veulent juste coder.",[39,1763,1764,1767,1768,1771],{},[668,1765,1766],{},"C'est là qu'intervient DevBox.","\nVoyez DevBox comme une \"télécommande simplifiée\" ou un ",[672,1769,1770],{},"wrapper"," élégant.",[64,1773,1774,1784],{},[67,1775,1776,1779,1780,1783],{},[668,1777,1778],{},"Sans DevBox :"," Vous devez écrire des scripts ",[1705,1781,1782],{},".nix"," cryptiques pour configurer votre environnement.",[67,1785,1786,1789,1790,1793,1794,1797],{},[668,1787,1788],{},"Avec DevBox :"," Vous remplissez un simple fichier ",[1705,1791,1792],{},"devbox.json"," (aussi facile à lire qu'un ",[1705,1795,1796],{},"package.json",") et l'outil se charge de \"parler\" à Nix pour vous.",[39,1799,1800],{},"Maintenant que la barrière technique est levée, quelle est la différence d'expérience par rapport à Docker ? Utilisons une analogie simple :",[64,1802,1803,1809],{},[67,1804,1805,1808],{},[668,1806,1807],{},"Docker, c'est l'hôtel."," C'est standardisé, isolé, sécurisé. Mais vous n'êtes pas chez vous. Les fichiers sont montés via des volumes (lent), le réseau est une couche supplémentaire. C'est parfait pour la Production.",[67,1810,1811,1814],{},[668,1812,1813],{},"DevBox, c'est la Réalité Augmentée."," Vous restez chez vous (votre terminal natif, votre OS). Mais quand vous enfilez les lunettes (quand vous lancez DevBox), les outils dont vous avez besoin apparaissent comme par magie. C'est natif, instantané, et ça disparaît quand vous les enlevez.",[56,1816,1818],{"id":1817},"la-preuve-par-lexemple-le-5-minutes-challenge","La Preuve par l'Exemple (Le \"5 Minutes Challenge\")",[39,1820,1821],{},"Assez de théorie. Prenons un cas concret qui parle à tout Tech.",[39,1823,1824],{},"Imaginez un projet Python un peu capricieux qui nécessite :",[64,1826,1827,1833,1839],{},[67,1828,1829,1832],{},[668,1830,1831],{},"Python 3.10"," (alors que votre système est en 3.12).",[67,1834,1835,1838],{},[668,1836,1837],{},"Poetry"," pour gérer les paquets.",[67,1840,1841,1842,1845],{},"Un client ",[668,1843,1844],{},"PostgreSQL"," spécifique.",[39,1847,1848],{},"Avec DevBox, voici à quoi ressemble l'installation :",[101,1850,1852],{"id":1851},"étape-1-création-du-contrat","Étape 1 : Création du contrat",[39,1854,1855],{},"Dans votre dossier projet, initialisez l'environnement.",[1857,1858,1862],"pre",{"className":1859,"code":1860,"language":1861,"meta":277,"style":277},"language-bash shiki shiki-themes github-dark","devbox init\n","bash",[1705,1863,1864],{"__ignoreMap":277},[1865,1866,1869,1873],"span",{"class":1867,"line":1868},"line",1,[1865,1870,1872],{"class":1871},"svObZ","devbox",[1865,1874,1876],{"class":1875},"sU2Wk"," init\n",[101,1878,1880],{"id":1879},"étape-2-linstallation-isolée","Étape 2 : L'installation isolée",[39,1882,1883],{},"Ajoutez vos outils. DevBox va chercher les binaires pré-compilés (pas de compilation interminable).",[1857,1885,1887],{"className":1859,"code":1886,"language":1861,"meta":277,"style":277},"devbox add python@3.10 poetry postgresql\n",[1705,1888,1889],{"__ignoreMap":277},[1865,1890,1891,1893,1896,1899,1902],{"class":1867,"line":1868},[1865,1892,1872],{"class":1871},[1865,1894,1895],{"class":1875}," add",[1865,1897,1898],{"class":1875}," python@3.10",[1865,1900,1901],{"class":1875}," poetry",[1865,1903,1904],{"class":1875}," postgresql\n",[101,1906,1908],{"id":1907},"étape-3-lactivation","Étape 3 : L'activation",[39,1910,1911],{},"Entrez dans la matrice.",[1857,1913,1915],{"className":1859,"code":1914,"language":1861,"meta":277,"style":277},"devbox shell\n",[1705,1916,1917],{"__ignoreMap":277},[1865,1918,1919,1921],{"class":1867,"line":1868},[1865,1920,1872],{"class":1871},[1865,1922,1923],{"class":1875}," shell\n",[39,1925,1926],{},"C'est fini.",[39,1928,1929,1930,1933],{},"Si vous tapez ",[1705,1931,1932],{},"python --version",", le terminal vous répondra 3.10, même si votre système est pollué par d'autres versions.",[39,1935,1936],{},"Pour le nouveau développeur qui arrive, l'onboarding se résume désormais à deux commandes :",[39,1938,1939,891,1942,563],{},[1705,1940,1941],{},"git clone",[1705,1943,1944],{},"devbox shell",[56,1946,1948],{"id":1947},"sous-le-capot-pourquoi-cest-fiable","Sous le capot : Pourquoi c'est fiable ?",[39,1950,1951],{},"Je sais ce que vous pensez : \"Encore un wrapper node qui va casser mon PATH ?\"",[39,1953,1954],{},"Non. DevBox est une interface accessible pour Nix, l'un des gestionnaire de paquets les plus robustes.",[64,1956,1957,1971,1981],{},[67,1958,1959,1962,1963,1966,1967,1970],{},[668,1960,1961],{},"Le Store Immuable :"," DevBox n'installe rien dans ",[1705,1964,1965],{},"\u002Fusr\u002Fbin",". Tout va dans ",[1705,1968,1969],{},"\u002Fnix\u002Fstore",", en lecture seule. Vous pouvez avoir 10 versions de Node.js côte à côte, elles ne se connaissent pas.",[67,1972,1973,1976,1977,1980],{},[668,1974,1975],{},"L'illusion du Shell :"," Quand vous lancez le shell, DevBox modifie temporairement votre ",[1705,1978,1979],{},"PATH"," pour pointer vers ces versions isolées.",[67,1982,1983,1986],{},[668,1984,1985],{},"Le Cache Mutualisé :"," C'est là que DevBox brille. Si vous avez cinq projets en Node 18, DevBox ne le télécharge qu'une seule fois. Contrairement à Docker qui réinstalle l'OS à chaque image, DevBox partage les binaires communs. Gain de place, gain de temps.",[56,1988,1990],{"id":1989},"docker-devbox-le-bon-outil-au-bon-endroit",[668,1991,1992],{},"Docker & DevBox : Le bon outil au bon endroit",[39,1994,1995],{},"DevBox et Docker ne sont pas concurrents. Ce sont deux couches différentes de votre stack. Voyez DevBox comme votre Boîte à Outils ultime (Toolbox). Son rôle est de préparer votre établi. Elle vous apporte les langages (Python, Go) et les clients (CLI) nécessaires pour travailler.",[39,1997,1998],{},"Et devinez quoi ? Parmi ces outils, DevBox peut parfaitement installer et configurer... Docker ou Kubernetes.",[39,2000,2001,2004],{},[668,2002,2003],{},"Le scénario idéal pour simuler la Production :"," vous voulez reproduire un environnement de production complexe (Microservices sur K8s) ?",[2006,2007,2008,2030,2039],"ol",{},[67,2009,2010,2012,2013,2016,2017,1519,2020,1519,2023,1519,2026,2029],{},[668,2011,1734],{}," installe les ",[672,2014,2015],{},"commandes"," : ",[1705,2018,2019],{},"kubectl",[1705,2021,2022],{},"helm",[1705,2024,2025],{},"terraform",[1705,2027,2028],{},"aws-cli"," (dans les versions exactes de la prod).",[67,2031,2032,2034,2035,2038],{},[668,2033,1734],{}," lance les ",[672,2036,2037],{},"scripts"," : Il configure l'accès à votre cluster local.",[67,2040,2041,2044,2045,2048],{},[668,2042,2043],{},"Docker\u002FK8s"," exécutent les ",[672,2046,2047],{},"services"," : Ils font tourner les bases de données et les conteneurs applicatifs.",[39,2050,2051],{},"DevBox est le chef d'orchestre, Docker est l'un des instruments.",[2053,2054,2055,2071],"table",{},[2056,2057,2058],"thead",{},[2059,2060,2061,2065,2068],"tr",{},[2062,2063,2064],"th",{},"Rôle",[2062,2066,2067],{},"DevBox (La Boîte à Outils)",[2062,2069,2070],{},"Docker \u002F Kubernetes (L'Infrastructure)",[2072,2073,2074,2083,2094,2105],"tbody",{},[2059,2075,2076,2079,2081],{},[2077,2078,2064],"td",{},[2077,2080,2067],{},[2077,2082,2070],{},[2059,2084,2085,2088,2091],{},[2077,2086,2087],{},"Mission",[2077,2089,2090],{},"Gérer l'outillage.  S'assurer que le développeur a les bonnes clés à molette.",[2077,2092,2093],{},"Exécuter les services.  Faire tourner les briques logicielles lourdes.",[2059,2095,2096,2099,2102],{},[2077,2097,2098],{},"Ce qu'il contient",[2077,2100,2101],{},"Compilateurs (Go, Rust), Interpréteurs (Node, Python), CLI ( docker ,  kubectl ,  terraform ).",[2077,2103,2104],{},"Bases de données (Postgres, Redis), Message Brokers (Kafka), Applications conteneurisées.",[2059,2106,2107,2110,2113],{},[2077,2108,2109],{},"Philosophie",[2077,2111,2112],{},"\"Je prépare ton environnement de travail.\"",[2077,2114,2115],{},"\"Je simule ton environnement de production.\"",[56,2117,2119],{"id":2118},"conclusion-un-json-to-run-them-all","Conclusion :  un JSON to run them All",[39,2121,2122],{},"L'infrastructure-as-code a révolutionné la production. Il est temps qu'elle révolutionne l'onboarding. Vos équipes ne devraient pas perdre de temps à configurer des outils. Elles devraient mettre leur énergie sur les tâches où elles ont un maximum de valeurs.",[2124,2125,2126],"style",{},"html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":277,"searchDepth":278,"depth":278,"links":2128},[2129,2130,2131,2132,2133],{"id":1741,"depth":283,"text":1742},{"id":1817,"depth":283,"text":1818},{"id":1947,"depth":283,"text":1948},{"id":1989,"depth":283,"text":1992},{"id":2118,"depth":283,"text":2119},"2026-01-14T14:07:08.940Z","**Le scénario est un classique du film d'horreur en entreprise.**  C'est le \"Day 1\" d'un nouveau développeur. Il est motivé, son café est chaud, sa machine est prête. On lui donne l'accès au repo. Il ",{},"\u002Fblogs\u002F2026-01-14-devbox-ou-comment-enfin-onboarder-un-dev-en-5min-chrono-sur-son-projet",[2139],{"id":622,"name":623,"image":2140,"linkedin":625,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F82ebd0fe-de28-43f3-ab7b-0431af41baad\u002FPhoto_HoppR.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466WN3QLNCE%2F20260114%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260114T140708Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEFYaCXVzLXdlc3QtMiJHMEUCIFD3v6TLnk5GmyhshqA5BlfwHhBJHcTihKFMH1xh8FAAAiEA6B%2F6vytfoyOMPoOmMOnmMsfzWqvIbVIVyk9SxRBOb5Uq%2FwMIHxAAGgw2Mzc0MjMxODM4MDUiDL6nPHU6OObivJIC6yrcAw%2BGMSR0gWkd909KwYy29%2BOOtd07YmkbUBPfyKQy5r44ubZUvnyvSe0bsnZlS%2BiruXV%2BAGH1i6YY8%2FfO0eW3%2F6bHTqgYg4jmlDqi3uQUyvSa%2B9ROYDaQonWsR1xQGJFRh3Q0FO67nIAv%2FDdPhejHVyc3bu5Yw6WNUkEb8av9H113ExC32mV6U3wm1Glrfc4rYfmQRxxrI9tyYnqjb17BDGot7eqAk5vTw2WgEqj1yLJfwOvOc9Vuvj2TDCT6XHPDxcraBQrDGZdVPhGEWQVOha%2BX0ZXI4ITciElRdlYY%2B4Xxf56q8ql1BFwBeWrjA7zO89T1ldzL4DYM6VVsTI%2BVD8ynF7EoZSRQoDt3FBWNyq0c1mkW%2BJKMcE8sYeppX8dTMf2fLezwknNN0aLAHVZnK4XxoAraRFbu3BRS1JQYOiMEle%2FtcErTA3X1Ta1llKaHRPRxdhMXr5uxW5D9%2BLLE%2B32QkD41lsPHdo%2FOOIPaaf8nG6mGZ6ZBUZnwpIjT8dntPtp3pI2c8d7f7VkQvVivaHWIc72JqjEavGmr4f01RxRFzPXzBA2c5Of4DJfXt3ZzRfhvCzATG5HpgWu5GVBFuYViCkRLytXHpet%2BTTZFhl5dlnBcBH%2Bnqkyy%2FJoJMJy%2FnssGOqUBaV15zB5j5%2BzO0TjePo5cVh5oNvLqVlrJGOL%2BiCjTFmTh%2Bq9TqZAWqhBDL%2Fow4sOiBPVNznBM5914QXUCD%2BT%2BryQHcsg5HeY2UQ6h1yy0DP4ktlenXm4U%2BcfXro6crhACbchkrLUpf2qANNrGa2I1SHj2%2F0yVPzquFLuh52qN6R9WsGQToQ9%2FlG3dzMlsgTMwiceoH4DcDiVxprDPl%2BIIjFNGb2lK&X-Amz-Signature=ba45c2556cf07a2dee7a1066cc21084b7f2a43679687bbef04b8c401bf1a63e5&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"title":1667,"description":2135},"blogs\u002F2026-01-14-devbox-ou-comment-enfin-onboarder-un-dev-en-5min-chrono-sur-son-projet\u002Findex",[2144,1663,863,308],"devops","kXSIb0GW-dPhm-PqjlnjiX509739FCXS9d038x9B1FM",1775715145617]